使用JQuery设置标签文本

时间:2014-01-03 12:36:11

标签: javascript jquery html onchange

这应该是非常直接的,但是下面的代码在更改下一个标签的文本方面没有做任何事情。我试过使用.text,.html等无济于事。这段代码有什么问题吗?

<script type="text/javascript">
$(document).ready(function()
{
    $("input:checkbox").on("change", checkboxChange);

    function checkboxChange()
    {
        $("#"+this.id).next("label").text("TESTTTT");
    }
});
</script>



<td width="15%" align="center"><input type="checkbox" name="task1" id="task1"></td>
<td width="25%" align="center"><label for="task1"></label></td>

2 个答案:

答案 0 :(得分:19)

该复选框位于td,因此需要先获取父级:

$("input:checkbox").on("change", function() {
    $(this).parent().next().find("label").text("TESTTTT");
});

或者,找一个for具有相同id的标签(可能比反向遍历更高效):

$("input:checkbox").on("change", function() {
    $("label[for='" + $(this).attr('id') + "']").text("TESTTTT");
});

或者,仅仅this.id更简洁:

$("input:checkbox").on("change", function() {
    $("label[for='" + this.id + "']").text("TESTTTT");
});

答案 1 :(得分:8)

我只是查询for属性而不是重复递归DOM树。

$("input:checkbox").on("change", function() {
    $("label[for='"+this.id+"']").text("TESTTTT");
});