2017-06-19 73 views
0

我有一个下拉列表,我需要使用该值来获取整个对象。我可以使用带有包含的文本来获取它,但相同的值不起作用。这是我的代码。我究竟做错了什么?使用值来获取所选下拉选项的对象

//var option = $("#car option:contains('Volvo')"); 
 
//alert(option.attr('value')); 
 

 
var option = $("#car option:contains('value1')"); 
 
alert(option.attr('value'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select id="car"> 
 
    <option value="value1">Volvo</option> 
 
    <option value="value2">Saab</option> 
 
    <option value="value3">Mercedes</option> 
 
    <option value="value4">Audi</option> 
 
</select>

注释的部分工作正常。我需要找到一种方法来使用该值来获取整个对象。

+0

只需用变量'option' – Saksham

+0

'VAR选项= $( “#汽车选项[值= '值1']”); ' –

+0

@Saksham该选项不工作,所以我的问题。 – Testing123

回答

1

虽然:contains选择器选择包含指定的文本元素。您可以使用[attribute = "value"]。我强烈建议阅读有关Selectors Here

//var option = $("#car option:contains('Volvo')"); 
 
//alert(option.attr('value')); 
 

 
var option = $("#car option[value='value1']"); 
 
alert(option.attr('value'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select id="car"> 
 
    <option value="value1">Volvo</option> 
 
    <option value="value2">Saab</option> 
 
    <option value="value3">Mercedes</option> 
 
    <option value="value4">Audi</option> 
 
</select>

0
var e = document.getElementById("car"); 
var selectedOption = e.options[e.selectedIndex].value; 
alert(selectedOption); 

首先,你的目标选择列表元素具有可变e,然后使用该元素的状态,并将其分配给selectedOption

+0

我在下面得到了我的答案,但你的代码有这个错误selectedOption.attr不是一个函数 – Testing123

+0

lol woops,是的,它应该只是警惕(selectedOption); – Aquaballin

+0

尽管此代码可能会回答问题,但提供有关如何解决问题和/或解决问题原因的其他上下文会提高答案的长期价值。 – Badacadabra

1

//var option = $("#car option:contains('Volvo')"); 
 
//alert(option.attr('value')); 
 

 
var option = $("#car option[value=value1]"); 
 
alert(option.attr('value'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="car"> 
 
    <option value="value1">Volvo</option> 
 
    <option value="value2">Saab</option> 
 
    <option value="value3">Mercedes</option> 
 
    <option value="value4">Audi</option> 
 
</select>

1

的问题是,jQuery的:包含仅指元素,而不是属性的内容的文本节点。

您可以通过以下方式使用属性的选择:

var option = $("#car option[value=value1]"); 
alert(option.attr('value')); 
相关问题