0

我的 html 页面中有 3 个选择选项,如下所示

    <select class="combo">
    <option value=""></option>
    <option value="1"></option>
    <option value="2"></option>
    <option value="3"></option>
    </select>
    <br/>
    <select class="combo">
        <option value="1"></option>
    <option value="2"></option>
    <option value="3"></option>
    </select>
    <br/>
    <select class="combo">
       <option value="1"></option>
    <option value="2"></option>
    <option value="3"></option>
    </select>
<br/>
<button type="submit" class="search_btn">
                                <img src="media/images/search_icon.png" title="Search" /></button>
                            <input type="text" lang="fa" id="search" name="search"/>

我想如果第一个选择值不为空,则触发一个动作。像这样的东西。

if( $('.combo').has('option').length > 0 ) { 
 $('#search').val('');
}

问题是我不知道如何为第一个选择而不是第二个和第三个选择解决此操作(因为它们具有相同的类名)。

请注意,我不想将 ID 设置为代码预览中的第一个选择

4

4 回答 4

3

您可以使用:first选择器:

if ( $('.combo:has(option):first').length > 0 ) { 
   $('#search').val('');
}

请注意,与第一个$('.combo:has(option):first')不同的是$('.combo:first:has(option)'),第一个选择select.combo具有选项元素的第一个,而第二个select.combo具有选项元素时才选择第一个。

于 2012-09-12T14:43:28.047 回答
2

您可以尝试使用:first()jQuery 提供的选择器 (http://api.jquery.com/first/)

给定一个表示一组 DOM 元素的 jQuery 对象,.first() 方法从第一个匹配元素构造一个新的 jQuery 对象。

演示

于 2012-09-12T14:43:35.730 回答
1

我不确定你想要什么..但要根据这个来回答......

我想如果第一个选择值不为空,触发一个动作

哎呀。我错过了选择的第一个选项。我刚刚编辑了这个问题。我的意思是,除了第一个“”之外的选择是什么时候

JS:

if( $('.combo:first').val() == '') {  //assuming not NULL means select value
   $('#search').val('');
}

:first用于从选定元素中选择第一个匹配的元素。

于 2012-09-12T14:56:29.187 回答
0

在 jQuery 中使用 :first 选择器来检索第一个选项,如下所示:

if ( $('.combo:has(option):first').length > 0 ) { 
   $('#search').val('');
}
于 2012-09-12T14:44:38.760 回答