2017-06-02 77 views
0

选择元素在jQuery中,为什么$("#myid").val()返回选择元素的值,但$("select[value='abcd']")没有发现有ABCD的值的选择元素?我怎么做后者 - 找到一个值为'abcd'的所有选择元素?jQuery的发现由值

编辑:我设法检索与解决方法的选择元素ID:我增加了选择的id作为其所有选项的属性。然后我用:$( “选项[值= ABCD]:选择了”),以找到的ABCD的值的所有选择的选项和最后$(本).attr( “myAttr”)。每个内(函数(){})获取ID。

有没有更好的方法来做到这一点?

回答

0

其实,没有为select标签没有value属性,所以它不会选择。您可以使用jQuery :has()伪类选择或has()方法来获取其中包含与特定属性值选项标签选择标签。

$("select:has([value='abcd'])") 
// or 
$("select").has("[value='abcd'])") 
// or 
$("select [value='abcd']").parent() 


UPDATE:如果要选择与所选值的所有选择标签 abcd然后使用 filter()方法。

$("select").filter(function(){ 
    return this.value == 'abcd'; 
}) 
+0

遗憾的是没有这些解决方案为我工作,所以我会继续使用我的自定义属性。谢谢 – lindAt

+0

@lindAt:你想达到什么目的? –

+0

我已经有了值,现在我想要找到具有该值的select元素的ID – lindAt

0

你可以用下面的方法来获得选择的值

$( “#id选项:选择”)。VAL();

+0

这是错误的方式 - 我已经有了价值,现在我想要具有值的select元素的id。 – lindAt

+0

var id = $(“#mySelect”)。children(“:selected”)。attr(“id”); –