2012-02-12 19 views
1

使用jquery,我如何找到包含沒有值的輸入的第一個div?jquery - 找到包含空輸入的第一個div

<div class="field"> 
    <input type="text" value="12"> 
</div> 
<div class="field"> 
    <input type="text" value="13"> 
</div> 
<div class="field"> 
    <input type="text"> 
</div> 
<div class="field"> 
    <input type="text"> 
</div> 

$('.field input').filter('text[value=""]').parent().addClass('first_empty') 
+0

$( 'div.field輸入').filter(」輸入:text [value =「」]').filter(':first').parent()。css('background-color','green'); – 2012-02-12 02:33:00

回答

4

你太親近了。將元素添加到屬性選擇器,或':text[value=""]'也可以。 DEMO

$('.field :input').filter('input:text[value=""]') 
        .parent(':first') 
        .addClass('first_empty'); 
+0

在這個演示中,它實際上選擇了所有具有空輸入的div,而不僅僅是第一個 – 2012-02-12 02:25:06

+0

是的,對我來說是監督。固定! – shaunsantacruz 2012-02-12 02:30:17

+0

@alpacalips有沒有辦法擴展這個檢查來考慮空白空間呢?我的意思是,選擇那些只有值空白的輸入? – 2013-05-29 13:48:44

2

選擇器將無法正常工作,因爲用戶打字輸入影響value財產,而不是value屬性。

你需要這樣的事情(我以純JS寫這個,因爲我不使用jQuery):

function findFirstEmptyInput() { 
    var qsa = document.querySelectorAll(".field input"), l = qsa.length, i; 
    for(i=0; i<l; i++) { 
     if(qsa[i].value == '') return qsa[i]; 
    } 
    return false; 
} 
+1

+1用於指出屬性和屬性之間的差異。 – shaunsantacruz 2012-02-12 02:07:22

+0

-1因爲不使用作者請求的jQuery。 – nopuck4you 2012-02-12 02:14:43

+0

前幾天我得到了+5,因爲它提供了一個CSS解決方案,而不是使用jQuery。請修改你對生活的看法。 – 2012-02-12 02:18:08

1
$('.field > input:text[value=""]').parent().addClass('first_empty'); 
相關問題