我需要“i”点击功能,具体取决于变量未知长度:
for(i=0;i<=unknownLength;i++)
{$("#group_link_"+i).click(function()
{//asynchronous call to a Web Service for the specific content on group_link_i div, here I will use $("#group_link_"+i).val()}
);}
此代码无效。但是,相同的代码,如果我删除循环并复制“i”次以上的代码,它的工作完美。
如何使用循环来完成此功能?
非常感谢
答案 0 :(得分:3)
这里不需要循环,只需使用更好的选择器,如'starts with' selector
$("a[id^='group_link_']").click(function() {
///do something with $(this) - which will be each element
});
答案 1 :(得分:0)
<强> FIXED:强>
for(var i = 0;; i++) {
var element = $("#group_link_" + i);
if (element.length) {
element.click(function() {
});
} else {
break;
}
}
答案 2 :(得分:0)
感谢纳斯平斯基。我告诉你,我解决了这个问题。非常感谢!。 100%工作:
$("a[id^='group_link_']").click(function()
{
$(this).parent().next().empty();
$().SPServices({
operation: "GetUserCollectionFromGroup",
groupName: $(this).text(),
async: false,
completefunc: processUsersGroups
}); /*close().SPServices({ */
function processUsersGroups (xData, status)
{
var i = 0;
var append_data = "";
var email_user="";
$("a[id^='group_link_']").parent().next().append("<ul class=\"contact_list\"><div id=\"paginator\" class=\"paginator_accordion\">");
$(xData.responseXML).find("[nodeName=User]").each
(
function()
{
if ($(this).attr("Email")!="")
{
email_user=$(this).attr("Email");
}
else
{
email_user="<i>Not Available in Active Directory</i>";
}
append_data = append_data +"<li class=\"contact\"><div class=\"user\"></div><div class=\"user_name\">"+$(this).attr("Name")+"</div><div class=\"mail\"></div><div class=\"user_mail\">"+email_user+"</div><div class=\"thick\"></div><div class=\"minus\"></div><div class=\"plus\"></div></li>";
i++;
}
)
$("a[id^='group_link_']").parent().next().append(append_data);
if(i==0)
{
$("a[id^='group_link_']").parent().next().append("There's no users available in this group");
}
else
{
$("a[id^='group_link_']").parent().next().append("</div></ul>");
}
}
$(function(){ $("#paginator").pagination(); });
});