2 Stimmen

jQuery Schleife ul li

Was ist daran falsch? Ich versuche, alle leeren L. zu verstecken.

    $(document).ready(function() {
        $("#details li").each(function() {
            if ($(this).length == 0) {
                $(this).css({ display: "none" }); ;
            }
        });
    });

Markup:

<ul id="details">
 <li>Lorem Ipsum</li>
 <li>Lorem Ipsum</li>
 <li>Lorem Ipsum</li>
 <li>Lorem Ipsum</li>
 <li></li>
 <li></li>
 <li>Lorem Ipsum</li>
 <li>Lorem Ipsum</li>
 <li>Lorem Ipsum</li>
</ul>

Ich danke Ihnen im Voraus

6voto

Nick Craver Punkte 609016

Ich denke, was Sie wollen, ist die .text() Länge, etwa so:

$(function() {
  $("#details li").each(function() {
    if ($(this).text().length == 0) {
      $(this).css({ display: "none" }); ;
    }
  });
});

Oder ein bisschen kürzer:

$("#details li").filter(function() {
  return $(this).text().length == 0;
}).hide();

Oder eine etwas andere Prüfung, die für Ihre Zwecke geeignet ist, mit freundlicher Genehmigung von @ Rafael :

$("#details li:empty").hide();

4voto

Kevin Sylvestre Punkte 35912

Versuchen Sie es mit:

if ($(this).is(':empty')) {}

Außerdem sollten Sie in der Lage sein, den obigen Code wie folgt umzuschreiben:

$("#details li:empty").each(function() {
  $(this).css({ display: "none" });
});

Oder sogar:

$("#details li:empty").hide();

0voto

Pointy Punkte 387467

Der Ausdruck $(this).length kann unmöglich Null sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X