jQuery - 查找除div之外的所有输入

时间:2014-07-23 18:13:27

标签: javascript jquery html dom

我正在尝试编写验证jQuery插件,但为此我需要查找容器内的所有输入,该容器标有属性。但是,该容器可能有其他子容器,也标有属性,并且它们可能有自己的输入。

我需要选择所有输入,父容器的后代(由$(this)访问),它们不是子容器的后代。这可能吗?

一些代码来说明:

<div data-container>
    <input>
    <div class="form-group">
        <input>
    </div>
    <input>
    <div data-container>
        <input>
        <input>
        <input>
    </div>
</div>

我想选择前三个输入,并忽略子数据容器中的输入。还必须选择表单组内的那个。

3 个答案:

答案 0 :(得分:3)

使用.not()从现有的jQuery选择中排除选择:

var yourSelection = $(this).find('input').not($(this).find('[data-container] input'));

JSFiddle(为简单起见,我将$(this)替换为小提琴中的$('[data-container]:first')

答案 1 :(得分:0)

这应该可以,http://jsfiddle.net/2Wv7P/

$('div[data-container] input:lt(3)')

答案 2 :(得分:0)

您可以根据父div选择。根据您给定的标记,只会选择第一级子项,假设您将父级ID标识为#parent

$('#parent > input')

所以遵循这条路径,如果你必须用$(this)选择父级,也就是说使用'this',那么你可以选择同一组'输入'

$('#' + this.id + ' > input')

例如 see this fiddle