Javascript 使用jQuery将选择框值设置为第一个选项
我正在用选项动态填充一个选择框。当我这样做时,我希望选择框的值是第一个选项的值(“默认选项”,如果您愿意)。听起来很简单,但我就是不能让它工作Javascript 使用jQuery将选择框值设置为第一个选项,javascript,jquery,Javascript,Jquery,我正在用选项动态填充一个选择框。当我这样做时,我希望选择框的值是第一个选项的值(“默认选项”,如果您愿意)。听起来很简单,但我就是不能让它工作 var myElement = $('select[name="myName"]'); 。。。。尝试了以下三种变体 // myElement.find('option').first().prop('selected', 'selected'); // myElement.val(myElement.find('options').first().va
var myElement = $('select[name="myName"]');
。。。。尝试了以下三种变体
// myElement.find('option').first().prop('selected', 'selected');
// myElement.val(myElement.find('options').first().val());
myElement.prop('selectedIndex', 0);
…但下一行给出了一个空白警报
alert(myElement.val());
我哪里做错了?你差一点就搞错了,在“选项”中去掉“s”:
myElement.val(myElement.find('option').first().val());
选项应该是选项
myElement.find('option:eq(0)').prop('selected', true);
您可以使用选项上的eq
选择器选择第一个选项
如果您知道第一个选项的值。然后你可以简单地做
myElemeent.val('first value') // Which selects the option by default
你尝试的第二个案例应该有效,除非你没有在正确的地点打电话。即;等待ajax响应完成
尝试在
done
或success
(弃用)处理程序中调用该函数,您还可以使用下一个代码:
myElement[0].selectedIndex = 0;
这个get是Dom元素(不是jQuery对象),与vanilla Javascript一起工作,并使用它根据其索引将第一个选项设置为所选选项。如果您想确保您的选项具有值且不是占位符,可以执行以下操作:
$('select option').filter( function (index, option) {
return option.attributes.value
}).val()
这样,您将检查HTML节点是否具有属性
值
,并且不是空的。如何填充选项?您能创建一个JSFIDLE示例吗?我看到的唯一原因是第一个选项的值为空,如果在更正之后,您作为result@KimPrince为什么?看看它是怎么工作的。。我在最后一个选项上设置了“selected”,然后使用这段代码将其还原为第一个选项Tanks Yotam,您是对的,但我没有等待ajax调用完成。查看Sushanth的回答…谢谢Sushanth-你说得对,我没有等待ajax完成。@Sushanth-这会触发与所讨论的select关联的任何.change()监视程序吗?