下面是我使用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'>"