替换td内的文本而不触及其他子元素

时间:2015-03-23 21:03:23

标签: javascript jquery

我有这个:

<td class="cant_formula numeric">
    0.007
    <input type="hidden" value="0.015" class="cant_formula"/>
</td>

我想替换里面的文字,我尝试了这些方法:

$('td.cant_formula.numeric').contents().first()[0].textContent='fsdfwffwwfwf“;

但它不起作用!!

这是小提琴:https://jsfiddle.net/gp5gmmgx/

你能帮帮我吗,我做错了什么?

3 个答案:

答案 0 :(得分:1)

看看这个https://jsfiddle.net/gp5gmmgx/2/

$('td.cant_formula.numeric').contents()
    .filter(function() {
        return this.nodeType == 3; //Node.TEXT_NODE
    })
    .get(0).nodeValue = 'test';
  1. table元素是必需的,否则td元素未被选中;
  2. 关于选择文本节点阅读https://stackoverflow.com/a/298758/3349900

答案 1 :(得分:0)

jsFiddle似乎没有使用该版本的jQuery。 (我甚至无法获得一个简单的警报工作。)

升级到至少v 1.9.1

此外,td元素必须位于tr元素内,且必须在table范围内。

https://jsfiddle.net/0rnLa9j1/

答案 2 :(得分:-1)

尝试

$('td.cant_formula.numeric').text("text");

实际上在测试之后,这将替换td的所有内容而不仅仅是文本。我应该听听我的直觉并在回答前仔细检查,道歉!