を検出する私のhtmlコードです:jQueryのは、ここで埋め入力
<label for="input">Name</label>
<input type="text" id="input"/>
私は入力がそれで満たされた何かを持っている場合は、ラベルを非表示にするスクリプトを作りたかったです。私はこれを作ったが、何もしない。どうして?
if ($("input").val().length !== 0) {
$(this).siblings().hide();
}
を検出する私のhtmlコードです:jQueryのは、ここで埋め入力
<label for="input">Name</label>
<input type="text" id="input"/>
私は入力がそれで満たされた何かを持っている場合は、ラベルを非表示にするスクリプトを作りたかったです。私はこれを作ったが、何もしない。どうして?
if ($("input").val().length !== 0) {
$(this).siblings().hide();
}
$(this)を使用するときは、実際にその入力欄を参照していない、それが機能か何かの周りに巻かれていないよう.sibl ...
(デフォルトでthis
はWindow
です)。
2行目の$('#input').siblings().hide()
も参照してください。
あなたは$("input").val()
ため<input type="text" id="input"/>
を使用しているが、それはそれは、以下のものを使用して空の場合は、入力を見て、ラベルを非表示にする.each関数を使用することができます$("#input").val()
とIDセレクタのための「#」が欠けている:
$("#input").each(function() {
if (!$(this).val()) {
$(this).siblings().hide();
}
});
これは動作しませんhttp://codepen.io/anon/pen/EyZPdV?editors=1010 –
@ Karolina Tichaあなたが提供したcodepenリンクで動作します。ご覧のとおり、「名前」というラベルは表示されません。 – Josh
これは問題ではありません。 HTML要素にはタグ名でアクセスすることもできます。 –
はい、あなたは正しいです、ここで引き起こされる問題は、$(これ)の使用です。それを指すための高齢者 –