找到给定标签的输入的最有效方法是什么?

时间:2014-08-06 01:45:01

标签: jquery

我使用的库并没有提供一种简单的方法来唯一地标识每个输入。然而它确实提出了一个独特的文本"相应标签内的元素。

到目前为止,这可以通过文字获取我的标签

$("label:contains('Name')")

但是......我怎么能接受这个并获得下一个可用的输入(在这个元素之后),使用jQuery对性能的影响最小?

更新

这是html我正在使用-thanks获取所有帮助!

<label id="ember386" class="ember-view control-label">
<script id="metamorph-19-start" type="text/x-placeholder"></script>Name<script id="metamorph-19-end" type="text/x-placeholder"></script></label>
<script id="metamorph-20-start" type="text/x-placeholder"></script>
<input id="ember388" class="ember-view ember-text-field form-control">

更新2

这很有效!感谢罗伯特的帮助!

$("label:contains('Name')").siblings('input').first()

2 个答案:

答案 0 :(得分:3)

Eek ...... <label>有用,它应该有一个&#39; for&#39;属性,告诉您与其关联的输入的ID。否则,标签实际上并没有实现启用可访问性的目标。理想情况下,您可以抓住标签,然后执行$('#' + theLabel.attr('for'))。但是要回答你找到下一个输入的问题,那应该是theLabel.siblings('input').first(),但如果你的DOM发生变化,标签不在相应的输入之前,这显然会中断。

答案 1 :(得分:0)

请尝试以下示例来解决您的问题。

$("label").each(function(){
if($(this).html() == "THIS" || $(this).html().indexOf("THIS") != -1){
//Do Something
}
});