2011-12-01 43 views
1

下面是我在Jquery中使用的代码,当在SharePoint上选择超链接时,传递值。无法传递超链接中的数组值

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); 

它无法读取retval [i]中的值,它在ID处分裂。语法错了吗?

回答

0

如果您希望变量来评价,它需要外引号的(如你与实际超链接的文本所做的那样):

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 
0

多一点可读性:

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

希望这有助于!

+0

注意我还删除了空格! – Leon

0

既然你周围的整个字符串双引号:

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

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

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