我有一个id为"main-form"的表单,在其中有一个class为"block-footer"的元素。
在这个元素中,有一个子元素:
<button type="button">Submit</button>
如何使用jQuery查找没有添加Id的按钮?该按钮的文本始终为“提交”。
在选择时,是否值得使用id =“main-form”作为起点以使其更有效率?
我有一个id为"main-form"的表单,在其中有一个class为"block-footer"的元素。
在这个元素中,有一个子元素:
<button type="button">Submit</button>
如何使用jQuery查找没有添加Id的按钮?该按钮的文本始终为“提交”。
在选择时,是否值得使用id =“main-form”作为起点以使其更有效率?
选择所有 <button>
元素,然后根据它们的 innerHTML
进行筛选:
$('button').filter(function() {
return this.innerHTML == 'Submit';
});
如果需要的话,你可以更明确地只选择 type="button"
的按钮元素,尽管这样会略微降低效率:
$('button[type="button"]').filter(function() {
return this.innerHTML == 'Submit';
});
关于您的评论:
我能否使它更有效率,因为我知道该按钮在一个我知道的带有类名的 div 中,也在我已知 ID 的表单中?
当然可以。
var $container = $('.element-that-contains-the-button');
$('button', $container).filter(function() {
return this.innerHTML == 'Submit';
});
$container.find()
,其效果完全相同。$('button:contains("Submit")')...
或者如果您对该元素更了解,可以在内部找到它:
$('.block-footer button:contains("Submit")')...
<button>Not the Submit you’re looking for</button>
。 - Mathias Bynens你可以使用 jQuery 包含选择器。
var yourButton = $('button:Contains("Submit")');
<button>不是你要找的提交按钮</button>
。 - Mathias Bynens$(":contains('Submit')").Action()
<button>Not the Submit you’re looking for</button>
。 - Mathias Bynens既然您已经知道了表单ID,那么您只需要循环每个按钮元素并检查它是否包含“提交”文本。
$(document).ready(function(){
$("#main-form button").each(function(e){
var btnCaption = $(this).text();
if(btnCaption == 'Submit'){
//do something
alert('hey, i am the submit button');
}
});
});
我已经包含了一个工作示例DEMO
jQuery('#main-form button:contains("submit")')
将返回主表单中文本为 "submit" 的提交按钮。