1

无论如何检查单击事件后块元素是否保持为空?li因为如果单击后仍然为空,我需要添加一些数据

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

exists它是我在stackoverflow上找到的一个自定义函数作为答案

更新

由于$(this).html(search_box);li 的内容被替换为输入框,但我想在用户单击另一个 li 后设置另一个文本,而之前没有选择任何内容。

更新2

.exists()不是问题,问题是当用户单击另一个 li 时,上面的 li 仍然为空

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

更新3

问题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 回答