jQuery检索并设置html select元素的选定选项值

Ern*_*ngs 126 jquery

我试图使用jQuery检索并设置选择元素(下拉列表)的选定值.

对于我已经尝试过的检索$("#myId").find(':selected').val(),以及$("#myId").val()两者都返回undefined.

任何洞察这个问题将非常感激.

pmk*_*mko 248

获取/设置select元素的实际selectedIndex属性使用:

$("#select-id").prop("selectedIndex");

$("#select-id").prop("selectedIndex",1);
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是prop()功能是在1.6版本中实现的,因此以前的版本没有此功能. (19认同)
  • 我喜欢这个答案,因为它实际上回答了访问索引的问题,而不仅仅是价值. (18认同)
  • @ M.YitzhakSamuel` .attr()`和`.prop()`不是同义词.它将在某些属性也是属性的情况下工作,例如`.attr('id')`等于`.prop('id')`.在这种情况下,`.prop('selectedIndex')`等于`.get(0).selectedIndex`. (7认同)
  • 是啊.我认为这是最初的问题. (4认同)

red*_*are 150

你拥有它的方式目前是正确的.选择的id不是你说的,或者你在dom中有一些问题.

检查ID的元素,并检查您的标记验证在这里的W3C.

没有有效的dom jQuery无法与选择器一起正常工作.

如果id是正确的并且您的dom有效,那么以下适用:

要读取选择选项值

$('#selectId').val();
Run Code Online (Sandbox Code Playgroud)

设置选择选项值

$('#selectId').val('newValue');
Run Code Online (Sandbox Code Playgroud)

阅读所选文本

$('#selectId>option:selected').text();
Run Code Online (Sandbox Code Playgroud)


kar*_*m79 7

$('#myId').val() 应该这样做,如果没有我会尝试:

$('#myId option:selected').val()
Run Code Online (Sandbox Code Playgroud)