なぜ.attr('selected','selected')
selectタグで書くのですか
例:
$('#countryList option').filter(function () {
return ($(this).text() == findText); }).attr('selected','selected');
});
それは本当にどういう意味ですか?
の説明 .attr('selected','selected')
。
内部の最初の引数は、最初の引数として渡される属性の2 番目の引数セットを指している間を.attr
表します。attribute
value
ちょうどその場合、属性.attr('selected')
の値を返すだけです。selected
.attr()
jquery メソッドを使用して、セレクターの属性を設定します。したがって、あなたの場合、この関数はテキストをドロップダウンで選択されたものとして表示するために使用しています。
一般に、選択された属性は、その値に関係なく、単に存在するか存在しないかによって、ほとんどのブラウザーで尊重されます。仕様上はブール属性(javascriptで設定した場合)ですが、HTMLマークアップでは通常、この属性の有無で表現されます。これは、要素がデフォルトでドロップダウンに表示されるオプションであることを意味します。
何が起こっているかを見てください:
$('#countryList option').filter(function () {
return ($(this).text() == findText);
}).attr('selected','selected');
}); //<---------this is extra
わかりましたが、質問は、なぜtagで書く.attr('selected','selected')
のselect
かということです:
<select>
選択した属性をに設定していないが、含まれていることがわかる場合<option>
。
あなたのコードは、選択された属性を、option
と同等のテキストを保持するに設定しますfindText
なぜ .attr('selected','selected') と書くのか
それがjQueryが選択できる方法です。選択した項目を選択したい場合は、val()を使用して選択したオプションを設定できます
$('#countryList').val(5); // it will set the selected attribute for option having value 5