Javascript 了解每个jquery函数的功能-意外输出
我正试着对Javascript 了解每个jquery函数的功能-意外输出,javascript,jquery,html,Javascript,Jquery,Html,我正试着对每个函数进行思考。用这把小提琴 我想逐一遍历列表框中选定的元素 基本上,我期待这样的输出 found itemA found itemB found itemA,itemB 但是我得到了这样的输出 found itemA found itemB found itemA,itemB 我想知道为什么会发生这种情况,以及我如何解决它。 这是我正在使用的代码 HTML 您正在迭代选择,而不是选项s。传递给每个函数的函数只会被调用一次。将选择器更改为#test>选项,并与问题的注释一样,
每个函数进行思考。用这把小提琴
我想逐一遍历列表框中选定的元素
基本上,我期待这样的输出
found itemA
found itemB
found itemA,itemB
但是我得到了这样的输出
found itemA
found itemB
found itemA,itemB
我想知道为什么会发生这种情况,以及我如何解决它。
这是我正在使用的代码
HTML
您正在迭代选择
,而不是选项
s。传递给每个函数的函数只会被调用一次。将选择器更改为#test>选项
,并与问题的注释一样,将val()
更改为text()
您正在迭代选择
,而不是选项
s。传递给每个函数的函数只会被调用一次。将选择器更改为#test>选项
,并与问题的注释一样,将val()
更改为text()
- 必须指定元素选择器。仅使用
#test
不会迭代选项
,因为您实际上没有引用它李>
$(“#出价”)。单击(函数(){
$(“#测试选项”)。每个(函数(){
log(“找到”+$(this.val());
});
});代码>
项目a
项目B
测试
- 必须指定元素选择器。仅使用
#test
不会迭代选项
,因为您实际上没有引用它李>
$(“#出价”)。单击(函数(){
$(“#测试选项”)。每个(函数(){
log(“找到”+$(this.val());
});
});代码>
项目a
项目B
测试您要使用的
$.each($("#test").prop("options"), function () {
console.log("found " + this.value);
});
或
你会想用
$.each($("#test").prop("options"), function () {
console.log("found " + this.value);
});
或
下面是一个可能更能说明这一点的示例:
HTML
<select multiple="multiple" size="5" id="test">
<option value="a">Item A</option>
<option value="b">Item B</option>
</select>
<br>
<button type="button" id="bid">test</button>
$(选择器).each(回调(索引,元素))
将迭代选择器中的每个元素,并将其索引和元素传递给函数。下面是一个可能会对其进行更多解释的示例:
HTML
<select multiple="multiple" size="5" id="test">
<option value="a">Item A</option>
<option value="b">Item B</option>
</select>
<br>
<button type="button" id="bid">test</button>
$(选择器).each(回调(索引,元素))
将迭代选择器中的每个元素,将其索引和元素传递给函数。然后我得到'found itemA itemB',输出仍然不是我所期望的,那么您期望$(this).val()返回什么?为什么$(“#test”)
会选择多个元素?然后我会得到`found itemA itemB`输出仍然不是我期望的那么好,你期望$(this).val()返回什么?为什么$(“#test”)
会选择多个元素?innerHTML
?只要获取这个.value
@Bergi-Huh,我就确信当选项中没有value
属性时,.val()
将无法工作。innerHTML
?只需获取this.value
@Bergi-Huh,我确信当选项中没有value
属性时,.val()
将不起作用。val表示表单元素的值,似乎您正在尝试获取选项的文本。val表示表单元素的值,似乎您正在尝试获取选项的文本。
$(function() {
$("#bid").click(function() {
$("#test option").each(function(ind, el) {
console.log("At Index " + ind +" found Option with Value: " + $(el).val() + " and Label of: " + $(el).html());
});
});
});