【问题标题】:Adding a class to a label with JQuery使用 JQuery 将类添加到标签
【发布时间】:2011-05-16 10:04:31
【问题描述】:

我正在尝试使用 jQuery 在复选框的单击事件上将一个类添加到复选框的标签中。在 ajax 调用中检索复选框的 HTML 后,我正在调用以下函数。

function modDispTable() {
    $("#disptbl :input").each(function () {
        $(this).click(function () {
            var lblid = $(this).attr("id") + "_lbl";

            if ($(this).is(":checked")) {
                $(lblid).addClass('chksel');
            }
            else {
                $(lblid).removeClass('chksel');
            }
        });
    });
}

还有更多的复选框,但所有复选框的 HTML 看起来都类似于:

<label id="chk_sobomnifeat_lbl" name="chk_sobomnifeat_lbl" for="chk_sobomnifeat" class="radiolbl chkmod chkmod1">
<input id="chk_sobomnifeat" name="chk_sobomnifeat" value="chk" type="checkbox">
Sobella Omni Feature Display
</label>

现在,我要做的就是应用不同的背景颜色。 CSS 位于页面随附的文件中。

.chksel {
    background-color: #D3CEBE;
}

我没有收到任何错误。当点击事件被触发时,在 Firebug 中进行调试让我更加困惑,lblid 包含正确的 id 值(标签),并且应该执行了 addClass 行。

有没有人知道为什么该课程不适用?我正在使用 JQuery 1.4.4。

【问题讨论】:

    标签: jquery html css


    【解决方案1】:

    我认为您的 ID 字符串中缺少 #

    var lblid = "#" + $(this).attr("id") + "_lbl";

    【讨论】:

    • 我必须选择一个来指出我的这个小脸时刻......谢谢大家!
    【解决方案2】:

    你可能需要像这样的 id 选择器:

    var lblid = "#" + $(this).attr("id") + "_lbl";
    

    但更酷的是(因为您已经使用了正确的标记):

    var label = $("[for=" + $(this).attr("id") + "]");
    

    【讨论】:

    • 有趣...如何在我的脚本中使用label?我可能想念你在这里的目的。分配label后,我会做类似label.addClass("chksel");的事情吗?
    • 我做了一些研究,弄清楚了你在这里的目的。我非常喜欢它!它从我的特殊情况中删除了一堆代码。我以此为指导 - stackoverflow.com/questions/285522/…。非常感谢!它更酷!
    • 很高兴你知道了。该解决方案的巧妙之处在于,您不需要一堆不必要的 ID。您可以将 label 用作 jQuery 对象,也可以将其包装到 $(label) 中(在 jQuery 对象上使用 jQuery 对象将返回该对象)。
    【解决方案3】:

    尝试添加“#”:

    var lblid = "#" + $(this).attr("id") + "_lbl";
    

    【讨论】:

      【解决方案4】:

      将选择器更改为$('#'+lblid)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-18
        • 1970-01-01
        • 2011-10-30
        • 2012-10-16
        • 1970-01-01
        相关资源
        最近更新 更多