我的问题可能很愚蠢,因为我是网络开发新手,现在很困惑。
我的问题的第一部分是,有时当我使用 console.log(some element)
打印内容时,它给了我一个包含所有监听器的巨大对象,但有时它只是返回一个 html 字符串,如下所示:
<option value="CS 245">CS 245</option>
我发现的方式some element
像上面一样使用选择器如下:
$( ".course_list option:selected" )[0]
我对这里的术语感到抱歉,因为我真的想知道复杂对象和上面的对象(以及它们的名称)之间的区别。我已经尽力选择我的用词,但由于缺乏经验,我未能说得更清楚。如果有人明白我的意思,请帮我编辑这个问题并提供答案,提前致谢。
那么我问题的第二部分是我想从上面的对象中获取“CS 245”字符串。我已经尝试过
$( ".course_list option:selected" )[0].val();
$( ".course_list option:selected" )[0].attr("value");
$( ".course_list option:selected" )[0].text();
但是他们都给了我这个错误:
Uncaught TypeError: undefined is not a function
我已经包含了 jquery,并且控制台中没有显示其他crash/file_not_found。我正在使用最新的 Bootstrap 和 formstone 选择器,但我不确定这对我有何影响。
有人可以帮忙吗?
最佳答案
您不需要将其转换为 javascript 对象 原始 DOM 元素,只需执行以下操作:
$( ".course_list option:selected" ).val()
当您执行 $( ".course_list option:selected")[0]
时,您将获得原始 DOM 元素,它不是 jquery 对象,因此请调用 val()
它会给你错误。
对于 DOM 元素,你可以这样尝试:
$( ".course_list option:selected" )[0].getAttribute("value")
要了解更多信息,您可以引用此 SO Post
关于jquery - 使用 jquery 获取所选选项的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880649/