使用jquery / javascript从dom中删除/(斜杠)

时间:2016-12-16 07:24:54

标签: javascript jquery dom

我有dom结构,如

<div class="container">
    <span> test1 </span> 
    /
    <span> test2 </span> 
    /
    <span> test3 </span> 
</div>

产生类似

的输出
test1/test2/test3

我可以删除span ..但无法从dom中移除slash ..任何人都可以帮我从dom中删除斜杠,这样我就可以获得输出< / p>

 test1test2test3

3 个答案:

答案 0 :(得分:1)

您可以获取所有.contents()元素,包括Node.TEXT_NODE之后.filter()可用于获取文本节点,然后使用.remove()

&#13;
&#13;
$('.container').contents().filter(function() {
  return this.nodeType == Node.TEXT_NODE
}).remove();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <span>test1</span> /
  <span>test2</span> /
  <span>test3</span> 
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以对.childNodes个父.container元素进行迭代,检查当前节点的.textContent是否包含"/",如果是,则将当前节点作为参数调用.parentElement.removeChild

var container = document.querySelector(".container");
for (let node of container.childNodes) {
  if (node.textContent.indexOf("/") > -1) {
    node.parentElement.removeChild(node)
  }
}
<div class="container">
  <span> test1 </span> /
  <span> test2 </span> /
  <span> test3 </span> 
</div>

答案 2 :(得分:0)

您可以使用children()功能并修改container HTML。

&#13;
&#13;
var $container = $('.container');
$container.html($container.children());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
    <span>test1</span> 
    /
    <span>test2</span> 
    /
    <span>test3</span> 
</div>
&#13;
&#13;
&#13;