Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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,我正在用选项动态填充一个选择框。当我这样做时,我希望选择框的值是第一个选项的值(“默认选项”,如果您愿意)。听起来很简单,但我就是不能让它工作 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()监视程序吗?