id="main-form" のフォームがあり、その中に class="block-footer" があります
その要素の中に:
<button type="button">Submit</button>
要素にIDを追加せずにjQueryを使用してこのボタンを見つけるにはどうすればよいですか? ボタンには常に送信のテキストがあります。
より効率的にするために、選択の開始点として id="main-form" を使用する価値はありますか?
id="main-form" のフォームがあり、その中に class="block-footer" があります
その要素の中に:
<button type="button">Submit</button>
要素にIDを追加せずにjQueryを使用してこのボタンを見つけるにはどうすればよいですか? ボタンには常に送信のテキストがあります。
より効率的にするために、選択の開始点として 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")')...
フォーム 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');
}
});
});
jQuery('#main-form button:contains("submit")')
送信テキストを持つメインフォーム内に送信タイプのボタンが表示されます。
jquery Contains セレクターを使用できます。
var yourButton = $('button:Contains("Submit")');
:contains セレクターを使用します。
これはあなたの質問に役立ちます:
$(":contains('Submit')").Action()
このコードを管理できます
jQuery('document').ready(function() { jQuery('form').find('button').addClass('hi') });