我正在尝试遍历动态生成的页面,抓取特定的跨度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>
答案 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>');
});