Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过Jquery围绕特定内容注入代码_Javascript_Jquery - Fatal编程技术网

Javascript 通过Jquery围绕特定内容注入代码

Javascript 通过Jquery围绕特定内容注入代码,javascript,jquery,Javascript,Jquery,我和jQuery有点争吵。我试图在HTML页面上的一部分内容周围注入一个带有特定类的span 例如,这是我的html: <td class="">4 <a href="#">view</a></td> 4 我想要的是 <td class=""><span class="num_cell">4</span> <a href="#">view</a></td> 4 我觉得这

我和jQuery有点争吵。我试图在HTML页面上的一部分内容周围注入一个带有特定类的span

例如,这是我的html:

<td class="">4 <a href="#">view</a></td>
4
我想要的是

<td class=""><span class="num_cell">4</span> <a href="#">view</a></td>
4
我觉得这可能比我现在做的要容易——有人能帮忙吗?

这也应该行得通:

$('td').each(function(){
    $(this).contents().first().wrap("<span class='num_cell'>");
})
$('td')。每个(函数(){
$(this.contents().first().wrap(“”);
})
这也应该有效:

$('td').each(function(){
    $(this).contents().first().wrap("<span class='num_cell'>");
})
$('td')。每个(函数(){
$(this.contents().first().wrap(“”);
})

如果您只想涵盖textNode,则应使用
.contents()
,它还将textNodes作为项目返回

请查看文档,这里有一个例子可以准确回答您的问题

    $("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");
$(“p”).contents().filter(函数(){返回this.nodeType!=1;}).wrap(“”);
在你的评论之后,我认为你不需要一个循环,你能试试下面的代码吗

    $("td").contents().filter(function(){ return this.previousSibling == null && this.nodeType != this.TEXT_NODE; }).wrap("<span/>");
$(“td”).contents().filter(函数(){返回this.previousSibling==null&&this.nodeType!=this.TEXT_NODE;});
this.previousSibling==null
如果要检查它是否是第一个元素,则表示它是第一个


干杯。

如果您只想介绍textNode,您应该使用
.contents()
,它还将textNodes作为项目返回

请查看文档,这里有一个例子可以准确回答您的问题

    $("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");
$(“p”).contents().filter(函数(){返回this.nodeType!=1;}).wrap(“”);
在你的评论之后,我认为你不需要一个循环,你能试试下面的代码吗

    $("td").contents().filter(function(){ return this.previousSibling == null && this.nodeType != this.TEXT_NODE; }).wrap("<span/>");
$(“td”).contents().filter(函数(){返回this.previousSibling==null&&this.nodeType!=this.TEXT_NODE;});
this.previousSibling==null
如果要检查它是否是第一个元素,则表示它是第一个

干杯。

看看这个

$(文档).ready(函数(){
$(“td”)。每个(函数(){
var$div=$(本);
var$a=$div.find(“a”);
$div.find(a.remove();
var number=$div.html();
$div.html(“+number+”)。追加($a);
});
});​
我使用一个div来运行它,这样它就可以在jsFiddle中运行了。但是您可以用a替换div,它应该可以正常工作:)

这是最终版本

看看这个

$(文档).ready(函数(){
$(“td”)。每个(函数(){
var$div=$(本);
var$a=$div.find(“a”);
$div.find(a.remove();
var number=$div.html();
$div.html(“+number+”)。追加($a);
});
});​
我使用一个div来运行它,这样它就可以在jsFiddle中运行了。但是您可以用a替换div,它应该可以正常工作:)


这是最终版本

哇。。已经有很多答案了,这里有一个纯javascript的答案。。我在单元格中添加了一个ID以使其简单化,但您可以很容易地从那里获取该ID以使其通用

HTML

<td class="" id="targetCell">4 <a href="#">view</a></td>​
JSFIDDLE:
哇。。已经有很多答案了,这里有一个纯javascript的答案。。我在单元格中添加了一个ID以使其简单化,但您可以很容易地从那里获取该ID以使其通用

HTML

<td class="" id="targetCell">4 <a href="#">view</a></td>​
JSFIDDLE:

我一直在尝试将.html()和.wrap()结合起来,但似乎无法使其正常工作。有人有其他想法吗?我一直在尝试将.html()和.wrap()结合起来,但似乎无法实现。有人有其他想法吗?这是一个很好的解决方案,但它似乎在同一个类中多次包装了我的元素。事实上,随着时间的推移,我遇到了一些问题,你们的解决方案似乎完全解决了。谢谢你的帮助!这是一个很好的解决方案,但它似乎在同一个类中多次包装了我的元素。事实上,随着时间的推移,我遇到了一些问题,你们的解决方案似乎完全解决了。谢谢你的帮助!我把@rafek的每个循环都添加到这个循环中,它工作得非常好。谢谢你的帮助!我编辑了我的答案,我想你不需要使用额外的循环,让jQuery来处理这些事情。虽然这是一个很好的解决方案,但我遇到了一些问题,@rafek的解决方案似乎可以很好地解决这些问题。谢谢你的帮助!我把@rafek的每个循环都添加到这个循环中,它工作得非常好。谢谢你的帮助!我编辑了我的答案,我想你不需要使用额外的循环,让jQuery来处理这些事情。虽然这是一个很好的解决方案,但我遇到了一些问题,@rafek的解决方案似乎可以很好地解决这些问题。谢谢你的帮助!