Javascript for循环生成的特定输入的复杂选择

Javascript for循环生成的特定输入的复杂选择,javascript,jquery,selector,Javascript,Jquery,Selector,我试图在for loop生成的输入列表中选择一些特定的输入,在for loop生成的一些div中。这意味着选择过程有点混乱和困难,因为id是动态的 下面是我的示例,每个id都是由循环的生成的: <div id="block0"> <input id="special0-0" class="block"></input> <input id="special0-1" class="block"></input> &

我试图在
for loop
生成的输入列表中选择一些特定的输入,在
for loop
生成的一些div中。这意味着选择过程有点混乱和困难,因为
id
是动态的

下面是我的示例,每个id都是由循环的
生成的:

<div id="block0">
    <input id="special0-0" class="block"></input>
    <input id="special0-1" class="block"></input>
    <input id="special0-2" class="block"></input>
    <input id="special0-3" class="block"></input>
</div>
<div id="block1">
    <input id="special1-0" class="block"></input>
    <input id="special1-1" class="block"></input>
    <input id="special1-2" class="block"></input>
    <input id="special1-3" class="block"></input>
</div>
<div id="item0">
    <input id="special0-0"></input>
    <input id="special0-1"></input>
    <input id="special0-2"></input>
    <input id="special0-3"></input>
</div>
<div id="item1">
    <input id="special1-0"></input>
    <input id="special1-1"></input>
    <input id="special1-2"></input>
    <input id="special1-3"></input>
</div>
问题是,对于每个选项,
console.log(item2)
返回
0
,之后我无法对它们应用我计划的javascript更改。谢谢你的想法:)

可能就是这样:

$('[id^="item"]').children('[id$="-2"]:not(.block)'); // full
$('[id^="item"] > [id$="-2"]:not(.block)'); // short
首先选择id以“item”开头的div,在这些div中查找id以“-2”结尾的div

我建议您给根项目一个类。如果您总是想要第三个,则组合为:

$('.classname').children('div:nth-child(3)'); // full
$('.classname > div:nth-child(3)'); // short

谢谢你的回复。我编辑了JSFIDLE,您的4个选项似乎都不起作用,我仍然在日志中看到
0
:Nevermind。出于某种原因,它在JSFIDLE中返回0,但您的解决方案#1在我的实际代码中非常有效。谢谢!:)用$(document.ready)包装代码。它会起作用的。在执行代码时,dom还没有准备好。检查这把小提琴:
$('.classname').children('div:nth-child(3)'); // full
$('.classname > div:nth-child(3)'); // short