Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jquery选择器中跳过子项_Jquery_Jquery Selectors - Fatal编程技术网

如何在jquery选择器中跳过子项

如何在jquery选择器中跳过子项,jquery,jquery-selectors,Jquery,Jquery Selectors,有一个动态构建的Html块,其中一些元素具有属性input readonly container。我需要选择不在子输入只读容器中的元素 <div id='root' input-readonly-container> <input id='1' type="text" /> <input id='2' type="text" /> <input id='3' type="button" value="Btn"/> &

有一个动态构建的Html块,其中一些元素具有属性input readonly container。我需要选择不在子输入只读容器中的元素

<div id='root' input-readonly-container>
    <input id='1' type="text" />
    <input id='2' type="text" />
    <input id='3' type="button" value="Btn"/>
    <div id="child1" input-readonly-container>
        <input id='5' type="text"/>
        <input id='6' type="text"/>
    </div>
    <div id="child2">
        <input id='7' type="text"/>
        <input id='8' type="text"/>
    </div>

</div>
这应该只选择id=1,2,3,7,8

如果子元素没有[input readonly container],则选择应选择所有子元素7,8

如果我使用root=$‘child’运行相同的选择器,它应该只选择id=5,6

因此,使用选择器选择具有[input readonly container]的容器的元素,这些元素不是具有属性[input readonly container]的另一个元素的子元素。

尝试以下操作:

jQuery('div[input-readonly-container]:first').children().not('[input-readonly-container]')
试试这个:

jQuery('div[input-readonly-container]:first').children().not('[input-readonly-container]')

向要使用jQuery选择的元素添加一个类,并在脚本中使用单个选择器

<div input-readonly-container>
<input id='1' type="text" class="jquery-selector"/>
<input id='2' type="text" class="jquery-selector"/>
<input id='3' type="button" value="Btn" class="jquery-selector"/>
    <div id="child">
        <input id='5' type="text"/>
        <input id='6' type="text"/>
    </div>
</div>
同样,以数字开始id也不是一个好的做法


尽量使代码简单易读

向要使用jQuery选择的元素添加一个类,并在脚本中使用单个选择器

<div input-readonly-container>
<input id='1' type="text" class="jquery-selector"/>
<input id='2' type="text" class="jquery-selector"/>
<input id='3' type="button" value="Btn" class="jquery-selector"/>
    <div id="child">
        <input id='5' type="text"/>
        <input id='6' type="text"/>
    </div>
</div>
同样,以数字开始id也不是一个好的做法

尽量使代码简单易读

$div[输入只读容器]:第一个>输入


您可以使用子体选择器来避免大的子元素

:首先选择包含属性input readonly的文档的第一个元素div


>input仅选择div内的子体:first。

$div[input readonly container]:first>input


您可以使用子体选择器来避免大的子元素

:首先选择包含属性input readonly的文档的第一个元素div


>输入仅选择div中的子代:first。

筛选div的子代,请参见此处的js FIDLE,


过滤div的孩子们,看看这里的js小提琴,


ids不应该以numbersit开头,它只是示例伪代码。不过谢谢..ids不应该以numbersit开头,它只是一个示例伪代码。谢谢,也许也行,但绝地迷们的回答正是我需要的。谢谢也许也行,但绝地迷们的回答正是我所需要的。感谢您可以使用子代选择器来避免大的子元素。这与后代的含义相反…>输入仅选择div:first中的后代。是的,你肯定是反向的。你可以使用后代选择器来避免孙子元素。这与后代的含义相反…>输入仅选择div:first中的后代。是的,你肯定是倒过来的。
$(document).ready(function(){
    $("div[input-readonly-container]:first > input").css({"color": "red", "border": "2px solid red"});
});