使用jquery获取所选选项的值

时间:2014-11-12 06:28:36

标签: jquery forms twitter-bootstrap-3

我的问题可能很愚蠢,因为我是网络开发的新手,现在我很困惑。

我的问题的第一部分是,有时当我使用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 selecter,但我不确定这对我有什么影响。

有人可以帮忙吗?

5 个答案:

答案 0 :(得分:3)

您不需要将其转换为 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

答案 1 :(得分:2)

你使用它很简单:

$(".course_list").val();

答案 2 :(得分:1)

只需获取select并执行val方法:

$('.course_list').val();

$(function () {
  $('#get').on('click', function () {
    var value = $('.course_list').val();
    alert(value);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select class="course_list">
  <option value="1">Item 1</option>  
  <option value="2">Item 2</option>
  <option value="3">Item 3</option>
  <option value="4">Item 4</option>
</select>

<input type="button" value="Get Value" id="get" />

答案 3 :(得分:1)

你可以以适当的方式得到它。下面肯定会帮助你。

<select id="myselect">
<option value="1">Mr</option>
<option value="2">Mrs</option>
<option value="3">Ms</option>
<option value="4">Dr</option>
<option value="5">Prof</option>
</select>

// To Get Text
$("#myselect option:selected").text();

// To Get Value
$("#myselect option:selected").val();

答案 4 :(得分:0)

使用:

$(".course_list").val()

<select>的值是所选选项的值。

您不需要使用[0]。当你想获得jQuery对象包含的DOM元素时,可以使用它,这样就可以调用普通的DOM方法而不是jQuery方法。例如。你可以写:

$(".course_list")[0].value

因为.value是DOM属性。