问问题
930 次
1 回答
1
有时我必须设置选择菜单的值,而我所知道的是,适当的选项可能具有我在 value 属性或.text()
. 所以我遍历每个选项,检查 value 属性 AND.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 回答