从子节点更改文本

时间:2013-12-05 12:06:20

标签: javascript jquery html

我有以下标记:

<label class="radio">
<input class="radio" type="radio" name="month_type" value="0" checked="checked">
On day 5
</label>

我需要将文本从“第5天”更改为“第6天”。选择需要从输入到标签向上。

我试过了:

$("input[name='month_type']").parent().text(''); // the result is an empty string
$("input[name='month_type']").parent().contents().filter(function(){
return this.nodeType === 3; // Uncaught SyntaxError: Unexpected token ILLEGAL 
})​.remove();​

没有运气。

4 个答案:

答案 0 :(得分:1)

试试这个: - http://jsfiddle.net/adiioo7/4s2eV

<强> JS: -

$("input[name='month_type']").parent().html(function(){
    return $(this).html().replace("On day 5","On day 6");
});

答案 1 :(得分:1)

试试这个

$("#textchange").click(function(){
$('input[name=month_type]').parent().html('<input class="radio" type="radio" name="month_type" value="0" checked="checked">On day 6');
});

http://jsfiddle.net/4j37C/

答案 2 :(得分:0)

尝试

$("input[name='month_type']")[0].nextSibling.data = ' On day 6'; 

http://jsfiddle.net/W3WLD/1/

答案 3 :(得分:0)

更改文本你最好尝试javascript本身而不是jQuery。你可能知道你的标签有2个childNode。第一个是nodType = 1,最后一个nodeType = 3.尝试这个,你会得到你想要的:

$("input[name='month_type']").parent()[0].lastChild.textContent = "On day 6";