我试图为我的列表中的每个链接分配一个ID,如下所示,
for (var j = start; j < stop; j++) {
link = linkBase + json[j].relatedItemId;
$('#citations').append('<li><a href="' + link + '" id="num" + j>' +
json[j].title + '</a></li>');
alert($('a').attr('id'));
}
它一直给我undefined还是0?我应该在for循环之外使用$ .each吗?
我试图将for循环用于两个目的,但也许这不是一个好主意?
的 的 *编辑***
如果我把我的for循环放在像
这样的函数中// Loop function for each section
var loopSection = function(start, stop) {
// Http setup for all links
var linkBase = "http://www.sciencebase.gov/catalog/item/";
// Link for citation information
var link = "";
for (var j = start; j < stop; j++) {
link = linkBase + json[j].relatedItemId;
var $anchor = $("<a>", {
href: link,
id: "id" + j,
text: json[j].title
})
// .parent() will get the <li> that was just created and append to the first citation
element
$anchor.appendTo("<li>").parent().appendTo("#citations");
}
}
我无法从函数外部访问id
$('#citations').on('click', function (e) {
e.preventDefault();
var print = ($(this).attr('id'));
alert(print);
});
答案 0 :(得分:1)
此表格更清晰:
for (var j = start; j < stop; j++) {
link = linkBase + json[j].relatedItemId;
$("<a>", {
href: link,
id:'num' + j,
text: json[j].title
}).appendTo("<li>")
.parent() // get the <li> we just made
.appendTo("#citations");
}
如果您想要引用您创建的锚标记,请执行以下操作:
for (var j = start; j < stop; j++) {
link = linkBase + json[j].relatedItemId;
var $anchor = $("<a>", {
href: link,
id:'num' + j,
text: json[j].title
});
$anchor.appendTo("<li>").parent().appendTo("#citations");
}
答案 1 :(得分:0)
您的代码中存在语法错误(id =“num”+ j ..)
但是,您应该通过代码执行此操作(避免语法错误并提供更好的性能)
for (var j = start; j < stop; j++)
{
var link = linkBase + json[j].relatedItemId;
$('#citations').append($(document.createElement('li'))
.append($(document.createElement('a'))
.attr('href', link)
.attr('id', 'num' + j)
.html(json[j].title)));
}
答案 2 :(得分:0)
同意Schmiddty的回答,但为了完整起见
for (var j = 0; j < 10; j++) {
var link = "someLink.htm";
$('#citations').append('<li><a href="' + link + '" id="num' + j + '">'+ 'click here' + '</a></li>');
alert($('#citations a:last').attr('id'));
}
我只更改了您的变量,使其在this fiddle上作为演示单独使用