我想从以下标签中删除文本(以*突出显示),但是我希望标签元素后代的所有其他文本内容保持完好无损。我该如何实现?
这是我的HTML示例:
<label class="has-checkbox terms">
<input name="order[terms]" type="hidden" value="0">
<div class="icheckbox_minimal" style="position: relative;">
<input class="checkbox" type="checkbox" value="1" name="order[terms]" id="order_terms">
<ins class="iCheck-helper"></ins>
</div>
*ich habe die*
<a href="#">AGBs</a>
*gelesen und stimme diesen zu.*
<span class="terms-error"></span>
</label>
答案 0 :(得分:0)
如果我的理解正确,您希望删除直接包含在<label>
元素中的文本,而不会影响标签中其他子元素的文本。
这可以在不使用jQuery的情况下通过迭代childNodes
元素的<label>
并清除每个文本节点的textContent
来实现,如下所示:
const label = document.querySelector('label');
/* Iterate the nodes of the label */
for(const node of label.childNodes) {
/* Clear the text content of each child node
that is a text node */
if(node.nodeName === '#text') {
node.textContent = '';
}
}
<label class="has-checkbox terms">
<input name="order[terms]" type="hidden" value="0">
<div class="icheckbox_minimal" style="position: relative;">
<input class="checkbox" type="checkbox" value="1" name="order[terms]" id="order_terms">
<ins class="iCheck-helper"></ins>
</div>
*ich habe die*
<a href="#">AGBs</a>
*gelesen und stimme diesen zu.*
<span class="terms-error"></span>
</label>