1

クリックイベント後にブロック要素が空のままであることを確認する方法はありますか?liクリック後も空のままの場合はデータを追加する必要があるため

$('.order_list li').click(function() {
      $('#search_block').remove();
      if( ! $('#search_block').exists()) {
           $(this).html(search_box);
...

exists答えとしてstackoverflowで見つけたカスタム関数

アップデート

liの内容が入力ボックスに置き換えられたため$(this).html(search_box);、ユーザーが別のliをクリックした後、前に何も選択せずに別のテキストを設定したいと思います。

UPDATE2

.exists()問題ではありません。問題は、ユーザーが別のliをクリックし、上のliが空のままである場合です。

$.fn.exists = function () {
    return this.length !== 0;
}

UPDATE3

問題http://jsfiddle.net/vsJ96/1/

4

3 に答える 3

1

おもう

$('#search_block').length

簡単です。

$('#search_block')しかし、それがいくつかのコンテンツを持っているかどうかを知りたい場合は、

$('#search_block').contents().length
于 2012-06-04T15:44:12.030 に答える
1

要素が存在するかどうかを確認する場合は、 length プロパティのみを確認する必要があります。

if ( $('#search_block').length ) {

}

要素内に何かが存在するかどうかを確認する場合 (子要素やテキスト ノードなど)、コンテンツの長さを確認できます。

if ( $('#search_block').contents().length ) {

}
于 2012-06-04T15:52:40.180 に答える
0

http://jsfiddle.net/rbzzq/1/

$('body').on( 'click', 'body:has( #search_block ) .order_list li', function() {
    $('#search_block').remove();
    $(this).html(search_box);
});
于 2012-06-04T16:01:19.767 に答える