如何使用 jQuery 选择下拉选项?

IT技术 javascript jquery html drop-down-menu html-select
2021-01-20 06:46:43

我想知道是否有可能让 jQuery<option>在下拉框中选择第 4 个项目?

<select>
    <option></option>
    <option></option>
    <option></option>
    <option></option>
    <option></option>
</select>

我希望用户单击一个链接,然后让该<select>框更改其值,就好像用户通过单击<option>.

6个回答

怎么样

$('select>option:eq(3)').attr('selected', true);

例子:


对于现代版本的 jquery,您应该使用.prop()代替.attr()

$('select>option:eq(3)').prop('selected', true);

例子:

@rlemon,我明白,但是selectedIndex当使用multiple属性时不能用于多选设置选定元素的正常(html)方式是元素的selected属性option
2021-03-26 06:46:43
@GabyakaG.Petrioli 通常的方法实际上是将selected每个对应options元素属性设置true(可选地将其余元素false显式设置为)。多项选择实际上非常讨厌:)
2021-03-26 06:46:43
@sunnyiitkgp 以onchange编程方式更改值时,永远不会触发事件。您可以.trigger('change')在末尾添加 a来触发事件(尽管无论实际更改的值如何,它都会触发
2021-03-29 06:46:43
imo 这甚至不应该工作;应通过更改选择本身的状态来触发选项的选定状态:)
2021-03-31 06:46:43
selectElement.selectedIndex = index; 是杰克的意思。
2021-04-10 06:46:43

解决方案:

$("#element-id").val('the value of the option');
它不会selected在 HTML 中设置选项。
2021-03-23 06:46:43

HTML select 元素有一个selectedIndex属性,可以写入属性以选择特定选项:

$('select').prop('selectedIndex', 3); // select 4th option

使用纯 JavaScript 可以通过以下方式实现:

// use first select element
var el = document.getElementsByTagName('select')[0]; 
// assuming el is not null, select 4th option
el.selectedIndex = 3;
@GuyKorland jQuery 公开.trigger()了这一点,但由于您已经使用代码执行此操作,因此您自己也可以轻松调用更改处理程序。
2021-03-18 06:46:43
@Jack 有捷径吗?我找到的唯一方法: var fireEvent = function(selectElement){ if(selectElement){ if ("fireEvent" in selectElement){ selectElement.fireEvent("onchange"); } else { var evt = document.createEvent("HTMLEvents"); evt.initEvent("change", false, true); selectElement.dispatchEvent(evt); } } }
2021-04-06 06:46:43
@GuyKorland 这也发生在没有其他答案的情况下,在此处演示如果要触发事件,则必须手动执行。
2021-04-12 06:46:43
问题是它不会触发“onchange”事件。
2021-04-13 06:46:43

我会这样做

 $("#idElement").val('optionValue').trigger('change');
$("#idElement").val('optionValue').change() 也可以
2021-04-11 06:46:43

最简单的方法是val(value)函数:

$('select').val(2);

要获得选定的值,您无需提供任何参数:

$('select').val();

另外,如果你有<option value="valueToSelect">...</option>,你可以这样做:

$('select').val("valueToSelect");

演示

也工作 $('#SelectCtrlId').val('ValueToSelect');
2021-03-28 06:46:43