jQuery:替换a标记中的每个td
我想将jQuery:替换a标记中的每个td,jquery,html,Jquery,Html,我想将td表的每个td替换为一个包装好的a标签: $(“td”)。每个(函数(){ if($(this.find(“a”).length){ var link=$(this.find(“a”).attr('href'); $(“a”).contents().unwrap(); var content=$(this.html(); $(此)。替换为(“”); } }); 一些文本 一些 一些文本 一些 您可以使用wrapInner将td中的所有内容用a进行包装。您的$(“a”).content
td
表的每个td
替换为一个包装好的a
标签:
$(“td”)。每个(函数(){
if($(this.find(“a”).length){
var link=$(this.find(“a”).attr('href');
$(“a”).contents().unwrap();
var content=$(this.html();
$(此)。替换为(“”);
}
});代码>
一些文本
一些
一些文本
一些
您可以使用wrapInner
将td
中的所有内容用a
进行包装。您的$(“a”).contents().unwrap()
实际上破坏了您的代码,因为它将每个标签(而不是一个)展开。因此,在包装完所有内容后,您必须手动将这些a
标记作为目标
参见下面的工作示例
$(“td”)。每个(函数(){
if($(this.find(“a”).length){
var link=$(this.find(“a”).attr('href');
$(此).wrapInner(“
一些文本
一些
代码中的问题是
$("a").contents().unwrap();
当它第一次执行时,它会将所有锚定标记元素替换为纯文本。因此,下一次迭代无法找到任何锚定标记。这就是为什么只对第一个元素执行。因此,请按如下方式更改代码
$(this).find("a").contents().unwrap();
给你。用“a”标记将所有子项包装起来,而不是将所有子项包装成一个标记
$(“td”)。每个(函数(){
var-anchor=$(this.find(“a”);
如果(锚定长度){
var link=anchor.attr('href');
anchor.contents().unwrap();//展开链接标记
$(this.children().wrapInner(“
一些文本
一些
请显示“before”和“after”标记,因为描述不太清楚。因此我必须删除链接
变量中的每个a
标记。如何实现这一点?@ttcdummy请参见编辑。因为。每个标记都是同步的,您可以在每个函数之后执行