Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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,我试图根据变量在标记中预选一个选项。 但是,当通过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很高兴为您提供帮助