0

我有一个数组元素。他们有相似的 id:

Step2_Visits_0__CountryCode
Step2_Visits_1__CountryCode
Step2_Visits_2__CountryCode
Step2_Visits_3__CountryCode
Step2_Visits_4__CountryCode

这个数组命名为“visitCountries”。

我使用“loop for”并在每个元素标签之后追加。

例如:

for(var i=0; i < 20; i++) {
$(visitCountries[i].id).append("<a id=editCountryItemIcon[" + i + "]" 
    + "style=\"vertical-align: bottom;\"" 
    + "class=\"editLineItemLink\""); 
}

但它不起作用。请帮忙!

4

2 回答 2

0

我怀疑主要问题是 jQuery 使用哈希 ( #) 为 id 添加前缀,并将其用作选择器,因此将代码更改为:

for(var i=0; i < 20; i++) {
    $('#' + visitCountries[i].id).....

此外,您的代码还有 2 个问题;

  1. 您永远不会关闭<a>要附加的元素,因此屏幕上不会显示任何内容。换句话说,您尝试附加的元素在 HTML 中看起来像这样

    <a id=editCountryItemIcon[0] style="vertical-align: bottom;" class="editLineItemLink"

    因此,请确保您还附加>Some text</a>

  2. 为了使链接可点击,它需要一个href属性。通常的约定是href="#"如果您没有真正希望链接导航到的位置(例如,如果它由 javascript 处理),则添加。

  3. 属性名称前没有空格

所以总而言之,最终的代码应该看起来像:

var visitCountries = ["Step2_Visits_0__CountryCode","Step2_Visits_1__CountryCode","Step2_Visits_2__CountryCode","Step2_Visits_3__CountryCode","Step2_Visits_4__CountryCode"];
for(var i=0; i < 20; i++) {
$('#' + visitCountries[i]).append("<a href=\"#\" id=editCountryItemIcon[" + i + "]" 
    + " style=\"vertical-align: bottom;\"" 
    + " class=\"editLineItemLink\">Link</a>"); 
}

这是一个演示工作代码的实时示例:http: //jsfiddle.net/Lx93w/

于 2013-05-30T09:55:02.267 回答
0

我会做这样的事情:

for(var i=0; i < 20; i++) {
$(visitCountries[i].id).append("<a id=\"#editCountryItemIcon[" + i + "]\"" 
    + " style=\"vertical-align: bottom;\"" 
    + " class=\"editLineItemLink\""); 
}

不要忘记其他属性之前的空格,并将 id 属性括在引号中。此外,您应该使用# 作为@Jamlec 提到的。

于 2013-05-30T10:15:04.697 回答