我有一个id =“main-form”的表单,里面有一个class =“block-footer”
在一个元素里面:
<button type="button">Submit</button>
如何在没有向元素添加ID的情况下使用jQuery查找此按钮?该按钮始终具有提交文本。
是否值得使用id =“main-form”作为我选择的起点以提高效率?
答案 0 :(得分:3)
选择所有<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()
,效果完全相同。
答案 1 :(得分:1)
这将选择包含文本“提交”的所有按钮。
$('button:contains("Submit")')...
或者,如果您对该元素有更多了解,可以在里面找到它:
$('.block-footer button:contains("Submit")')...
答案 2 :(得分:0)
jQuery('#main-form button:contains("submit")')
会在主变格中提供提交文字的提交类型按钮。
答案 3 :(得分:0)
您可以使用jquery Contains selector。
var yourButton = $('button:Contains("Submit")');
答案 4 :(得分:0)
使用:contains选择器。
这适用于您的问题:
$(":contains('Submit')").Action()
答案 5 :(得分:0)
您可以管理此代码
的jQuery( '文件')。就绪(()的函数 { jQuery的( '形式')。发现( '按钮')。addClass( 'HI') });
答案 6 :(得分:0)
由于您已经知道表单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