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

时间:2015-01-28 07:10:46

标签: javascript jquery

我需要从文字字符中删除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”

3 个答案:

答案 0 :(得分:2)

您没有在输入

中再次设置值
 $('label input').text(function() {
     var text = $(this).text();
     text = text.replace('y','');
     $(this).val(text);
    });

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

使用此:

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