如何推广jQuery选择器?

时间:2012-03-02 14:29:56

标签: jquery jquery-selectors

我使用一些jQuery来突出显示表单字段。但输入字段本身并未突出显示,而是其父节点。我想指定那些父母。

这里的父级是div,它工作正常

$("div input").focus(function () {
        $(this).parent().addClass("focus");
});

但是我想指定父“td”就像这个

$("div,td  input").focus(function () {
        $(this).parent().addClass("focus");
});

但这不起作用。只有td字段才能获得焦点属性!知道如何处理这个吗?

8 个答案:

答案 0 :(得分:4)

逗号将两个选择器完全分开;您需要指定input两次:

$('div input, td input').focus(function() {
    $(this).parent().addClass("focus");
});

或者,如果您没有多少{em> 符合此条件的<input>,则可以让它更整洁:

$('input').focus(function() {
    $(this).parent('div, td').addClass('focus');
});

答案 1 :(得分:1)

您必须记住,使用,创建一个完整的新选择器!

您正在寻找

    $('div input, td input').focus(function() {
       $(this).parent().addClass("focus");
});

答案 2 :(得分:1)

如果您将所有输入字段定位为父级,则可以执行以下操作: -

$('input').focus(function () {
        $(this).parent().addClass('focus');
});

答案 3 :(得分:1)

你应该使用子选择器:

$("div > input, td > input")
.focus(function () {
  $(this).parent().addClass("focus");
})
.blur(function () {
  $(this).parent().removeClass("focus");
});

答案 4 :(得分:1)

http://api.jquery.com/multiple-selector/

$('td input, div input').focus(function () {
    $(this).parent().addClass("focus");
});

答案 5 :(得分:1)

我认为问题在于您选择divtd input而不是div inputtd input。逗号用作选择器的分隔符。

如果您没有任何其他input字段,则可以使用以下内容:

$("input")

或者如果您需要将div限制为td,那么:

$("div input, td input");

答案 6 :(得分:0)

$('input').parent('td').addClass('focus');

答案 7 :(得分:0)

$('td input').add().parent().doSOmething()