1
$('#button').click(function() {
   if ($('select[name^="dropdown_"][value="Test 1"]').length) {
      alert("Found.");
   }
});

我在一个页面上有 6 个下拉菜单。我正在尝试检查是否在其中一个中选择了某个值。上面没有这样做,虽然它看起来是正确的。我在这里想念什么?

4

4 回答 4

2

这里的问题是 HTML 选择没有 value 属性。这就是你看不到输出的原因。

检查这个小提琴

$(function(){
    $('#btn1').on('click' , function() {
        if ($('select[name^="dropdown_"]').val() == "Test 1") {     
           alert('Found !!') ;           
        };            
    }); 
});​
于 2012-09-10T19:54:49.590 回答
2

试试这个。您可以在选择器中使用该选项。

if ($('select[name^="dropdown_"] > option[value="Test 1"]:selected').length) {
      alert("Found.");
   }

你可以看到它在这里工作。http://jsfiddle.net/UECsS/

于 2012-09-10T20:00:24.810 回答
1

使用这个选择器:

$("select[name^="dropdown_"] option[value="Test 1"]:selected)

尽管我建议也许对这些选项值使用类名,以便您可以更有效地获取它们,例如:

$('.optionTest1:selected')

或者,至少在选择上应用一个类名

$('.dropdownSelect option[value="Test 1"]:selected')
于 2012-09-10T20:01:52.533 回答
1

您使用属性选择器来尝试查找元素属性。您必须自己检查选择属性。

$('#button').click(function() {
   if ($('select[name^="dropdown_"]').is(function(){return this.value == 'Test 1'})) {
      alert("Found.");
   }
});

演示

于 2012-09-10T20:02:44.833 回答