はありません選択>オプションにメニューの最初のオプションを選択します。
<option>
にvalue
属性がある場合、期待どおりvalue
属性が返されます。
私は上記のコードの戻り値をundefined
/私が特定できる他のものにすることができますか?または、value
属性が設定されているかどうかを確認し、そうでない場合は上記のコードのみを実行できますか?
はありません選択>オプションにメニューの最初のオプションを選択します。
<option>
にvalue
属性がある場合、期待どおりvalue
属性が返されます。
私は上記のコードの戻り値をundefined
/私が特定できる他のものにすることができますか?または、value
属性が設定されているかどうかを確認し、そうでない場合は上記のコードのみを実行できますか?
が:not([attr])
セレクタを使用して返します。 [value]
はまだ設定されていないと報告されるため、01のない同じ2つの要素を引き続き受け取ります属性。
$('#menu').change(function(){
console.log($(this).val());
console.log($("#menu option:not([value])"));
});
'value'を持たない最初のオプションかどうかを確認する必要があります。あなたの投稿に基づいて私は試してみました: 'if($("#メニューオプション:not([value]) ")first()=== $("#menu option ")。first())' no運(常に 'false')。あなたはなにか考えはありますか? (私はブラウザのコンソールで2つのセレクタが同じ要素を返すことを確認しました) – stackunderflow
OK、私はそれを持っています: '($("#メニューオプション:not([value]) ")[0] === $( "#メニューオプション")[0]) '。 '.first()'の代わりに '[0]'(要素を返します)(jQueryオブジェクトを返します)。ありがとう。 – stackunderflow
確かに、http://jsfiddle.net/userdude/NQm54/3/を参照してください。 '$ .is()'を使うと、はるかにクリーンで直接的です。 –
value属性が設定されていない場合、値の既定値はテキスト値です。属性値を特定できるように、属性値を設定してください。私はまた、変更した後ことを確認し
$("#menu option:not([value])");
http://jsfiddle.net/userdude/NQm54/
:空の文字列
<select id="menu">
<option value="">hi</option>
<option>bye</option>
</select>
下に示すように、この$("#menu option").first().attr("value")
が空の文字列
ありがとう、しかし、私はこれをプラグインで使用しているため、プラグインユーザーのHTMLコードを制御できません。 – stackunderflow
var option = document.getElementById("menu").options[0];
if (option.getAttribute("value") !== null) {
console.log("Has value: " + option.value);
}
else {
console.log("Doesn't have a value.");
}
$("#menu option:eq(0)").not("[value]").length == 1
選択されたオプションは、任意の値属性を持っていない場合は、未定義のは、あなたが!fooの
てキャプチャすることができた返されます。この
$("option:selected", $("#menu")).attr("value");
を使用します暗黙の 'value'属性があります。セレクタで ':not([value])'を試してみてください。 –