html页面代码如下:在通过$(".tag.tag_sucess.tag_x").remove()删掉这个span节点时,span后面的空格删不掉,在网上查了各种原因如下:js把空格当成一个文本节点,但利用jquery选择器确不能将空格选出,所以只能利用原生的js找出对应的文本节点在删除。
<span id="delete" class="tag tag_success tag_x">' 高级会员<a href="javascript:void(0)" ></a></span>
<span class="tag tag_success tag_x">' 黄金会员<a href="javascript:void(0)" ></a></span>
<span class="tag tag_success tag_x">' 钻石会员<a href="javascript:void(0)" ></a></span>
相应代码如下:
var deleted_el = document.getElementById('delete'); deleted_el.nextSibling.remove(); delete_el.remove();
这样就能够在删除span标签时对应的把想要删的空格删掉了。
通过查阅资料得知,js的DOM节点有3种类型:元素结点,属性结点以及文本结点。节点node可以通过调用nodeType来判断node的结点类型。即(node. nodeType)
--元素结点返回1
--属性结点返回2
--文本结点返回3
结点node返回的值根据元素类型的不同而不同,可以调用nodeValue返回结点的值, 即(node. nodeType)
--元素结点返回null
--属性结点返回undefined
--文本结点返回文本内容
这样的话,就可以根据这连个方法判断节点中的空格了,判断方法如下:
node.nodeType == 3 && !/\S/.test(node.nodeValue))