2012-02-12 10 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 [値= ""] ").filter( ':最初').parent().css( '背景色'、 '緑'); –

答えて

4

あなたはとても近かったです。属性セレクタに要素を追加すると、':text[value=""]'も機能します。ユーザータイピング入力がvalue財産、NOT value属性に影響を与えるため、DEMO

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

このデモでは、最初の入力だけでなく、空の入力を持つすべてのdivを実際に選択します –

+0

ええ、私の一部の監視。一定! – shaunsantacruz

+0

@alpacalipsこのチェックを拡張して空白の空白も考慮する方法はありますか?つまり、その値に空白だけを持つ入力を選択するということですか? –

2

セレクタは、動作しません。

あなたはこのような何かを(私はjQueryのを使用していないので、私は、プレーンJSでこれを書いている)必要があります。

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

+0

-1は、著者が要求したようにjQueryを使用しないためです。 – nopuck4you

+0

先日、jQueryを使用する代わりにCSSソリューションを提供して+5を得ました。あなたの人生観を改訂してください。 –

1
$('.field > input:text[value=""]').parent().addClass('first_empty'); 
関連する問題