val()
はinput
の値ではなく、要素のテキストノードの値を取得するために使用されます。 data()
は、テキストノード値ではなく、要素のデータ値を取得するために使用されます。
要素にが含まれていないかどうかを確認するには、text()
を使用する必要があります。
var $p = $('#foo'),
empty = ($.trim($p.text()) == '' && !$p.children().length);
console.log(empty);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="foo"></p>
:それはまた、あなたが(またはしない場合があります)空白を無視する、とも
children()
を使用して、任意のテキストを持っていない子要素をチェックするために
$.trim()
を使用する必要があることは注目に値します
さらに、これに独自の関数をローリングするのではなく、:empty
セレクタと組み合わせて、jQueryのis()
関数を使用できます。
console.log($('#foo').is(':empty'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="foo"></p>
あなたが試した何が悪いのか?できます。 –
はい、これは動作しています... – BenM
実際には長さで動作していますが、テーブルtrの有無をチェックしています –