我正在尝试编写验证jQuery插件,但为此我需要查找容器内的所有输入,该容器标有属性。但是,该容器可能有其他子容器,也标有属性,并且它们可能有自己的输入。
我需要选择所有输入,父容器的后代(由$(this)访问),它们不是子容器的后代。这可能吗?
一些代码来说明:
<div data-container>
<input>
<div class="form-group">
<input>
</div>
<input>
<div data-container>
<input>
<input>
<input>
</div>
</div>
我想选择前三个输入,并忽略子数据容器中的输入。还必须选择表单组内的那个。
答案 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')