1 に答える
1
時々、選択メニューの値を設定しなければならないことがありますが、私が知っているのは、適切なオプションが value 属性または で探している値を持っている可能性があるということだけです.text()
。したがって、各オプションをループして、値属性をチェックし、.text()
たとえば次のようにします。
// assuming var myValue is the value we're looking for
$(".menu option").each(function(){
if ( $(this).val() == myValue || $(this).text() == myValue ) {
$(".menu").val( $(this).val() );
}
});
すべてを小文字にしたり、スペースなどを削除したり、デバッグ ノートを出力したりすることもできます。
// assuming var myValue is the value we're looking for
myValue = myValue.toLowerCase().replace( / /g, "" );
var currentValue;
var currentText;
$(".menu option").each(function(){
currentValue = $(this).val().toLowerCase().replace( / /g, "" );
currentText = $(this).text().toLowerCase().replace( / /g, "" );
console.log("checking if '" + currentValue + "' == '" + myValue + "' OR if '" + currentText + "' == '" + myValue + "'");
if ( currentValue == myValue || currentText == myValue ) {
console.log(" ... match found, setting value");
$(".menu").val( $(this).val() );
}
});
デバッグノートも役に立ちました。ときどき、一致が見つからないと思っていた状況を見つけましたが、実際にはそうでした (「 ... 一致が見つかりました」という通知が出力されました)。これは、同じスクリプトの後半にあるコードがメニューの値をリセットしていることを理解するのに役立ちました。
于 2014-11-26T20:37:44.687 に答える