Lib*_*rid 3 javascript jquery jquery-selectors
如何选择下面无序列表前面的文本?
<li class="foo">
How can I remove this text?
<ul class="bar">
<li><a href="#">Link</a></li>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
$('ul.bar').previousSibling().remove();
Run Code Online (Sandbox Code Playgroud)
但我认为这只适用于另一个元素,而且我不完全确定如何选择不包含在标签内的文本.
是您正在寻找的解决方案.
$('.foo').contents().filter(function(){
return (this.nodeType == 3);
}).remove();
Run Code Online (Sandbox Code Playgroud)
nodeType属性返回指定节点的节点类型(数字).如果节点是文本节点,则nodeType属性将返回3.
非jQuery版本:
获取父节点.获取Parent的所有Children节点.将节点集合转换为数组.循环遍历数组.在每次迭代时检查nodeType.如果nodeType === 3那么它是一个文本节点.然后删除它.
Array.prototype.slice.call(document.getElementById('parent_node_id_here').childNodes, 0).forEach(function (value) {
if (value.nodeType === 3) {
value.remove();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |