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