以下是我在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);
它无法读取retval [i]中的值,它在ID处正确。语法错了吗?
答案 0 :(得分:0)
如果您想要对变量进行评估,则需要在引号的外部(与实际超链接的文本一样):
strHTML = strHTML + "<a href='url.aspx?ID=" + retval[i] + "&source=url ...";
但是,在将其放入网址之前,我会考虑使用encodeURIComponent
:
strHTML = strHTML + "<a href='url.aspx?ID=" + encodeURIComponent(retval[i]) + "&source=url ...";
另外,尽量避免在URL中包含空格(确保变量,等号(=
)和值靠得很近)。另外,如果href
属性的值被单引号('
)包围,您希望避免在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
答案 1 :(得分:0)
更具可读性:
var atag = "url.aspx?ID="+encodeURIComponenet(retval[i])+"&Source=url";
strHTML = strHTML + "<a href='"+atag+"'>" + retval[i] + "</a> ";
希望这有帮助!
答案 2 :(得分:0)
由于你有整个字符串的双引号:
"<a href='url.aspx?ID= '+retval[i]+' &Source= url'>"
它读取+ reval [i] +作为字符串的一部分,你要做的是区分字符串和命令。您需要使用双引号来结束字符串并添加命令。您需要将上述内容更改为:
"<a href='url.aspx?ID=" + retval[i] + "&Source=url'>"