Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:如果值未定义,如何禁用选择选项_Javascript_Jquery - Fatal编程技术网

Javascript jQuery:如果值未定义,如何禁用选择选项

Javascript jQuery:如果值未定义,如何禁用选择选项,javascript,jquery,Javascript,Jquery,我有一个输出类似以下内容的站点: <select id="tinynav1" class="tinynav tinynav1"> <option value="http://google.com">Home</option> <option value="undefined">About</option> <option value="http://website.com">- School News</opti

我有一个输出类似以下内容的站点:

<select id="tinynav1" class="tinynav tinynav1"> 
<option value="http://google.com">Home</option> 
<option value="undefined">About</option> 
<option value="http://website.com">- School News</option>
<option value="http://etc.com">- History Of The School</option>
<option value="http://etc.com">- Contact Us</option>
<option value="undefined">Curriculum</option>
<option value="http://etc.com">- Our Mission</option>
</select>
我想循环遍历这些值,如果该值未定义,我想添加属性disabled,即输出将被禁用

<select id="tinynav1" class="tinynav tinynav1"> 
<option value="http://google.com">Home</option> 
<option value="undefined" disabled="disabled">About</option> 
<option value="http://website.com">- School News</option>
<option value="http://etc.com">- History Of The School</option>
<option value="http://etc.com">- Contact Us</option>
<option value="undefined" disabled="disabled">Curriculum</option>
<option value="http://etc.com">- Our Mission</option>
</select>

使用属性选择器非常简单:

$("option[value=undefined]").prop('disabled', true);
编辑 由于vanilla JS似乎很重要,这里有一个vanilla JS解决方案:

var options = document.getElementById('tinynav1').options;

for(var i = 0; i < options.length; i++){
    options[i].disabled = options[i].value === 'undefined';
}

这里有一个非常简单的jQuery选项

$tinynav1选项[value='undefined'].attr'disabled','disabled'; 家 关于 -学校新闻 -学校历史 -联系我们 课程 -我们的使命
另一个jQuery的答案是。。。您可以使用纯Javascript:

NodeList.prototype.forEach=Array.prototype.forEach; document.querySelectorAlltinynav1选项[value='undefined'].forEachfunctionitem{ item.setAttributedisabled,已禁用; }; 家 关于 -学校新闻 -学校历史 -联系我们 课程 -我们的使命
你试过什么吗?