当我只用jQuery知道元素中的文本时,如何找到元素ID?

时间:2012-04-27 05:50:59

标签: jquery

我有一个id =“main-form”的表单,里面有一个class =“block-footer”

在一个元素里面:

<button type="button">Submit</button>

如何在没有向元素添加ID的情况下使用jQuery查找此按钮?该按钮始终具有提交文本。

是否值得使用id =“main-form”作为我选择的起点以提高效率?

7 个答案:

答案 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