Javascript 为什么jQuery返回整数而不是对象?
我试图根据变量在Javascript 为什么jQuery返回整数而不是对象?,javascript,jquery,Javascript,Jquery,我试图根据变量在标记中预选一个选项。 但是,当通过jQuery选择元素并使用.each()对其进行迭代时,它似乎返回整数而不是对象,因此.value等不适用 这是我的代码: $("#id option").each(function(option){ if(option.value == "myValue") { option.value.selected = "true"; } }); jQuery的每个的第一个参数是索引,而不是对象。请尝试以下方法: $("
标记中预选一个选项。
但是,当通过jQuery选择元素并使用.each()对其进行迭代时,它似乎返回整数而不是对象,因此.value等不适用
这是我的代码:
$("#id option").each(function(option){
if(option.value == "myValue") {
option.value.selected = "true";
}
});
jQuery的
每个的第一个参数是索引,而不是对象。请尝试以下方法:
$("#id option").each(function(i, option){
(如果您不关心索引i
,请不要使用它,但如果您想使用该值,则必须首先包含索引的参数)
本机数组迭代方法使用更合理的方法,首先列出有问题的元素,例如:
document.querySelectorAll('#id option').forEach((option) =>
因此,您必须仔细跟踪您正在使用的方法。您可以在内部使用$(此)
获取每个项目
$("#id option").each(function () {
console.log($(this).val());
});
您的each
函数不正确如果您想要元素引用,那么each
中应该有第二个参数,因为第一个参数是索引
引用参数。其次,您可以简单地使用val()
函数设置下拉列表的值
$(“#id选项”)。每个(函数(索引,选项){
如果(option.value==“myValue”){
$(“#id”).val('myValue');
}
});代码>
沃尔沃汽车
萨博
我的价值
奥迪
只要在代码中添加索引即可
$("#id option").each(function(index, option){
由于每个函数都有2个参数索引和对象,如果只添加1,它将作为第一个参数ie索引处理 每个的回调函数中的第一个参数是索引,第二个是元素
$("#id option").each(function(index, option){
if(option.value == "myValue") {
option.value.selected = "true";
}
});
请分享一个演示您的问题的工作片段。如果您在不需要时避免使用this
关键字,IMO代码的可读性会更高。@JacekZawisza很高兴为您提供帮助