2016-08-01 8 views
0

を検出する私のhtmlコードです:jQueryのは、ここで埋め入力

<label for="input">Name</label> 
<input type="text" id="input"/> 

私は入力がそれで満たされた何かを持っている場合は、ラベルを非表示にするスクリプトを作りたかったです。私はこれを作ったが、何もしない。どうして?

if ($("input").val().length !== 0) { 
    $(this).siblings().hide(); 
} 

答えて

0

$(this)を使用するときは、実際にその入力欄を参照していない、それが機能か何かの周りに巻かれていないよう.sibl ...

(デフォルトでthisWindowです)。
2行目の$('#input').siblings().hide()も参照してください。

-1

あなたは$("input").val()ため<input type="text" id="input"/>を使用しているが、それはそれは、以下のものを使用して空の場合は、入力を見て、ラベルを非表示にする.each関数を使用することができます$("#input").val()

+0

これは問題ではありません。 HTML要素にはタグ名でアクセスすることもできます。 –

+0

はい、あなたは正しいです、ここで引き起こされる問題は、$(これ)の使用です。それを指すための高齢者 –

0

とIDセレクタのための「#」が欠けている:

$("#input").each(function() { 
    if (!$(this).val()) { 
    $(this).siblings().hide(); 
    } 
}); 
+0

これは動作しませんhttp://codepen.io/anon/pen/EyZPdV?editors=1010 –

+0

@ Karolina Tichaあなたが提供したcodepenリンクで動作します。ご覧のとおり、「名前」というラベルは表示されません。 – Josh

関連する問題