3

我正在尝试遍历动态生成的页面,获取特定的跨度 ID,然后将该 id 附加到上一个跨度的 href 中。目前,这会在每个 h2.classA 中生成两个链接,而不是在每个实例中生成相应的单个链接。我应该将 each() 分配给 h2 吗?任何帮助是极大的赞赏。

现有的 HTML

    <h2>
    <span class="classA"> </span> 
    <span class="classB" id="somename"> SomeName </span>
    </h2>

    <h2>
    <span class="classA"> </span> 
    <span class="classB" id="anothername"> SomeName </span>
    </h2>

试图:

    $("h2 span.classB").each(function() {
    var content = $(this).attr('id');

    $('h2 span.classA').append('<a href="index.php?title='+content+'"> edit me </a>');              
    });

所需的 HTML 结果

    <h2>
    <span class="classA"><a href="index.php?title='+somename+'"> LINK1 </a></span> 
    <span class="classB" id="somename"> SomeName </span>
    </h2>

    <h2>
    <span class="classA"><a href="index.php?title='+anothername+'"> LINK2 </a></span> 
    <span class="classB" id="anothername"> AnotherName </span>
    </h2>
4

2 回答 2

1

代替

$('h2 span.classA').append('<a href="index.php?title='+content+'"> edit me </a>');              

$(this).prev('.classA').append('<a href="index.php?title='+content+'"> edit me </a>');              
于 2012-11-26T18:02:38.220 回答
1

您将锚点附加到classA每次迭代中的所有元素,为了选择前一个 span 元素,您可以使用以下prev方法:

$("h2 span.classB").each(function() {
    $(this).prev().append('<a href="index.php?title='+this.id+'"> edit me</a>');              
});

http://jsfiddle.net/c7V9z/

于 2012-11-26T18:04:10.013 回答