如何从元素中删除定义的文本字符

How to remove a defined text character from element?

本文关键字:定义 文本 字符 删除 元素      更新时间:2023-09-26

我需要从文本字符中删除y

我的标记:

<label>
 <input type="checkbox" name="_sft_category[]" value="" data-sf-cr="_sft_31" data-sf-hide-empty="1"> y2012 <span class="sf-count">(8)</span>
</label>

它必须变得2012,我正在尝试以下内容,但没有运气

$('label input').text(function() {
 var text = $(this).text();
 return text.indexOf('y') == 0 ? text.substring(1) : text;
});

我的文本输出中有一个空格,我想知道这是否与" y2012 "

您没有在输入中再次设置值

 $('label input').text(function() {
     var text = $(this).text();
     text = text.replace('y','');
     $(this).val(text);
    });

注意:如果你可以更改原始标记而不是使用javascript修复它,那就更好了。

在这种情况下,它不是输入元素的文本,而是文本节点的内容,因此

var $input = $('label input'),
    elTxt = $input[0].nextSibling;
elTxt.nodeValue = elTxt.nodeValue.replace(/^('s)?y/, '$1')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<label>
  <input type="checkbox"> y2012
</label>

使用这个:

return text.replace("y", "")