抓取跨度id并将其作为href附加到上一个跨度

时间:2012-11-26 18:01:32

标签: jquery html dom

我正在尝试遍历动态生成的页面,抓取特定的跨度ID,然后将该ID附加到上一个跨度的href中。目前,这会在每个h2.classA中生成BOTH链接,而不是在每个实例中生成相应的单个链接。我应该将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>

2 个答案:

答案 0 :(得分: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>');              

答案 1 :(得分: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/