2012-02-11 2 views
0

Как проверить это имеет содержимое в тесте jquery? Я хочу проверить, не ли ли каждый li не пуст, сделайте что-нибудь.jquery проверить это имеет содержание

Online demo И код repeart:

HTML

<ul> 
<li>list1</li> 
<li></li> 
<li>list3</il> 
<li>list4</li> 
<li></li> 
</ul> 
<div> </div> 

Javascript

$('ul li').click(function(){ 
    var list = $(this).html(); 
    if($(this':has(*)').length){ 
     $('div').html(list); 
    } 
}); 

CSS

ul{ 
    list-style:none; 
    width:210px; 
} 
li{ 
    float:left; 
    background:#ccc; 
    width:200px; 
    height:30px; 
    margin:3px; 
    display:block; 
} 
div{ 
    float:left; 
    display:inline-block; 
    line-height:30px; 
    background:#ff0ff0; 
    width:200px; 
} 
+0

Непонятно, что именно вы пытаетесь сделать. Можете ли вы уточнить? – Jivings

ответ

1

Проверьте размер (длину) .contents(): http://jsfiddle.net/h8UXV/2/

Я немного изменил ваш код: вы можете исключить вызов $(this).html(), когда содержимое пуста.

$('ul li').click(function() { 
    var $this = $(this); 
    if ($this.contents().length) { 
     $('div').html($this.html()); 
    } 
}); 
+0

В качестве альтернативы вы можете использовать '$ this.is (': empty')'. Этот фрагмент кода делает то же самое, что и '.contents(). Length', но может быть медленнее. –

0

Почему бы не просто проверить list, если у него есть что-то, это будет считаться истинным.

$('ul li').click(function(){ 
    var list = $(this).html(); 
    if(list){ 
     $('div').html(list); 
    } 
}); 
0

Попробуйте JQuery:

$('li').click(function(){ 
    if($(this).html().length){ 
     $('div').html($(this).html()); 
    } 
}); 

Обновлено jsFiddle

Смежные вопросы