2014-01-09 77 views
0

我只是想删除输入后的文字,有什么想法?输入标签后删除文字

<label class="checkbox"> 
<input id="forms-element-0-0" name="checkbox[]" value="1" type="checkbox"> 
remove me 
</label> 
+0

那么前面的文字呢? – crush

+0

可能重复的[如何用jQuery删除元素内的文本?](http://stackoverflow.com/questions/6690445/how-to-remove-text-inside-an-element-with-jquery) – j08691

回答

3

我会跳过jQuery的这一点,如果这仅仅是一个input的以下文字,并使用:

document.getElementById('forms-element-0-0').nextSibling.nodeValue = ''; 

JS Fiddle demo

要删除textNode(而不是简单地替换它与一个空字符串文本):

var text = document.getElementById('forms-element-0-0').nextSibling; 
text.parentNode.removeChild(text); 

JS Fiddle demo

如果你有label元素的集合合作,通过我建议:

$('label').contents().filter(function(){ 
    return this.nodeType === 3; 
}).remove(); 

JS Fiddle demo

参考文献:

+0

为什么不能只是删除节点? – crush

+0

没有特别的原因,我只是假设它可能需要以后。 –

+2

@DavidThomas:应该是'nodeType'而不是'nodeValue',否则最后一个应该工作。 –