我使用的库并没有提供一种简单的方法来唯一地标识每个输入。然而它确实提出了一个独特的文本"相应标签内的元素。
到目前为止,这可以通过文字获取我的标签
$("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()
答案 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
}
});