3

id="main-form" のフォームがあり、その中に class="block-footer" があります

その要素の中に:

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

要素にIDを追加せずにjQueryを使用してこのボタンを見つけるにはどうすればよいですか? ボタンには常に送信のテキストがあります。

より効率的にするために、選択の開始点として id="main-form" を使用する価値はありますか?

4

7 に答える 7

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()、これはまったく同じ効果があります。

于 2012-04-27T05:53:00.293 に答える
1

これにより、「送信」というテキストを含むすべてのボタンが選択されます。

$('button:contains("Submit")')...

または、要素について詳しく知っている場合は、内部で見つけることができます:

$('.block-footer button:contains("Submit")')...
于 2012-04-27T05:53:25.853 に答える
0

フォーム ID は既にわかっているので、各ボタン要素をループして、Submit テキストが含まれているかどうかを確認するだけです。

    $(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を含めました

于 2012-04-27T06:22:26.637 に答える
0

jQuery('#main-form button:contains("submit")')送信テキストを持つメインフォーム内に送信タイプのボタンが表示されます。

于 2012-04-27T05:54:07.503 に答える
0

jquery Contains セレクターを使用できます。

var yourButton = $('button:Contains("Submit")');
于 2012-04-27T05:54:22.373 に答える
0

:contains セレクターを使用します。

これはあなたの質問に役立ちます:

$(":contains('Submit')").Action()
于 2012-04-27T05:55:58.170 に答える
0

このコードを管理できます

jQuery('document').ready(function() { jQuery('form').find('button').addClass('hi') });

于 2012-04-27T06:03:28.460 に答える