无法在超链接中传递数组值



下面是我使用Jquery传递值时,在sharepoint disp表单上选择超链接的代码。

for(var i=0;i<retval.length;i++)
{
 strHTML = strHTML +  "<a href='url.aspx?ID= '+retval[i]+' &Source= url'>" + retval[i] + "</a>";
 strHTML = strHTML + " ";
 }
  strHTML = strHTML + "</div>";

   $("textarea[Title='Test']").closest("span").find("iframe[Title='Rich Text Editor']").contents().find("body").html(strHTML); 

无法读取检索[i]中的值,它在ID处中断。语法有问题吗?

如果要对变量求值,则需要在引号之外的(就像您对实际的超链接文本所做的那样):

strHTML = strHTML + "<a href='url.aspx?ID=" + retval[i] + "&source=url ...";

但是,在将encodeURIComponent放置在URL中之前,我会考虑使用它:

strHTML = strHTML + "<a href='url.aspx?ID=" + encodeURIComponent(retval[i]) + "&source=url ...";

另外,尽量避免在URL中包含空格(确保变量、等号(=)和值靠近在一起)。此外,给定href属性的值被单引号包围('),您要避免在URL中间使用它们(例如,不要在URL中使用'包围ID的值)。

var id = 'foo';
var bad  = "<a href='target.aspx?ID='"+id+"''>Invalid</a>";
//  bad = <a href="target.aspx?ID='foo''>Invalid</a>
// note that the single quotes now interfere
var good = "<a href='target.aspx?ID="+id+"'>Valid</a>";
//  good = "<a href='target.aspx?ID=foo'>Valid</a>";    
// note now that the quotes align and the value is acceptable

更易于阅读:

var atag = "url.aspx?ID="+encodeURIComponenet(retval[i])+"&Source=url";
strHTML = strHTML +  "<a href='"+atag+"'>" + retval[i] + "</a> ";

希望这对你有帮助!

由于整个字符串都有双引号:

"<a href='url.aspx?ID= '+retval[i]+' &Source= url'>"

它读取+reval[i]+作为字符串的一部分,你想要做的是区分字符串和命令。您需要使用双引号来结束字符串并添加命令。您需要将上面的内容更改为:

"<a href='url.aspx?ID=" + retval[i] + "&Source=url'>"

最新更新