jQuery .prev() 类型,无论其父级等
有没有一种简单的方法可以获取 DOM 中元素先前出现的位置?如果我正在查看 #text3
并且想要获取之前的输入 #text2
。
<div>
<input id="text1" type="text" value="text1" />
</div>
<div>
<p>Choose your race!</p>
<input id="text2" type="text" value="text2" />
</div>
<div>
<div class="labeledField">
<label>Text 3:</label>
<input id="text3" type="text" value="text3" />
</div>
</div>
.prev('input')
不起作用,因为它位于父级中,并且 .prevAll('input')
似乎也只搜索父级... Am我在这里缺少一些东西吗?这感觉应该比 $('#text3').parent().prev().find('input')
容易得多:D
is there a simple way to get the previous occurrence of an element in the DOM? If I'm looking at #text3
and I want to get ahold of the previous input #text2
.
<div>
<input id="text1" type="text" value="text1" />
</div>
<div>
<p>Choose your race!</p>
<input id="text2" type="text" value="text2" />
</div>
<div>
<div class="labeledField">
<label>Text 3:</label>
<input id="text3" type="text" value="text3" />
</div>
</div>
.prev('input')
doesn't work cause it's within the parent and .prevAll('input')
seems to only search the parent as well... Am I missing something here? This feels like it should be much easier than $('#text3').parent().prev().find('input')
:D
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
$.index()
,像这样:例如:http://jsfiddle.net/pYaBL/1/
You can use
$.index()
, like so:For example: http://jsfiddle.net/pYaBL/1/
我创建了一个新的 jQuery 插件,它返回“真实的”前一个输入元素。包含此代码:
用法:
Fiddle:http://jsfiddle.net/QWRWh/
I've created a new jQuery plugin which returns the "real" previous input element. Include this code:
Usage:
Fiddle: http://jsfiddle.net/QWRWh/
其他两个答案都假设您正在使用的元素与您正在查找的元素属于同一类型。如果它是任意的,这应该可以工作(在较大的文件上性能不是很好)。
结合其他两个答案:
http://jsfiddle.net/QWRWh/1/
Both other answers assume that the element you are using is of the same type of the element you're looking for. If it's arbitrary, this should work (performance not be great on larger files).
Sort of combining the two other answers:
http://jsfiddle.net/QWRWh/1/