我有一个选择字段,其中有一些选项。现在我需要用jQuery选择其中一个选项。但是,当我只知道必须选择的选项的值时,我该怎么做呢?
我有以下HTML:
<div class="id_100">
<select>
<option value="val1">Val 1</option>
<option value="val2">Val 2</option>
<option value="val3">Val 3</option>
</select>
</div>
我需要选择值为val2的选项。如何做到这一点呢?
这是一个演示页面:
http://jsfiddle.net/9Stxb/
试试这个。
它简单而有效,是JavaScript + jQuery的致命组合。
SelectComponent:
<select id="YourSelectComponentID">
<option value="0">Apple</option>
<option value="2">Banana</option>
<option value="3">Cat</option>
<option value="4">Dolphin</option>
</select>
选择:
document.getElementById("YourSelectComponentID").value = 4;
现在您的选项4将被选中。您可以这样做,在默认情况下选择启动时的值。
$(function(){
document.getElementById("YourSelectComponentID").value = 4;
});
或者创建一个简单的函数,将行放入其中,并在anyEvent上调用该函数来选择该选项
jQuery + JavaScript的混合物的魔力…
您可以使用属性选择器[attributename=optionalvalue]选择任何属性及其值,因此在您的情况下,您可以选择该选项并设置所选属性。
$("div.id_100 > select > option[value=" + value + "]").prop("selected",true);
其中value是您希望通过的值。
如果您需要删除任何先前选择的值,就像多次使用这种情况一样,您需要稍微更改它,以便首先删除所选的属性
$("div.id_100 option:selected").prop("selected",false);
$("div.id_100 option[value=" + value + "]")
.prop("selected",true);
我已经准备了一个小的JQuery扩展,删除所有不必要的选项和隐藏所选的选项,用户只看到一个值在选择字段
$.prototype.makeReadOnly = function (canClick = false) {
$(this).each(function () {
$(this).readonly = true;
if ($(this).is("select")) {
if(!canClick) $(this).mousedown(function () { event.preventDefault(); }).keydown(function () { event.preventDefault(); });
$(this).find('option:not(:selected)').remove();
$(this).find('option').hide();
}
});
}
然后你可以让所有的选择都是只读的
$("select").makeReadOnly();
或者只选择特定的只读类
$("select.read-only").makeReadOnly();