14 Stimmen

jQuery verwendet 'this' in einer if-Anweisung

Ich benutze eine if Anweisung, um festzustellen, ob ein Element Kinder hat. Wenn es KEINE Kinder hat, möchte ich nur mit diesem Element etwas tun.

Hier ist die Prämisse dessen, was ich zu tun versuche:

if ($("#div a").children().length > 0){
    $(this).hide();
}

Wenn also ein <a> Tag keine Kinder hat, möchte ich etwas mit diesem speziellen Element (oder mehreren Elementen, die ebenfalls keine Kinder haben) machen.

Das Problem ist, dass this wurde nicht definiert, weil es sich um eine if Erklärung.

Vielleicht übersehe ich etwas, aber ich bin mir nicht ganz sicher, wie ich das erreichen kann. Jeder Ratschlag würde geschätzt werden

11voto

Selvakumar Arumugam Punkte 77945

Edit : Hinzugefügt DEMO Link

Sie können verwenden .filter um den Zustand zu prüfen und die .hide auf die Filterergebnisse. Siehe unten,

$("#div a").filter(function () {
  return ($(this).children().length > 0)
}).hide();

9voto

user3716779 Punkte 101

Können Sie mit each durch die Elemente iterieren

$('input').each(function(){
  if ($(this).val()) {
    $(this).addClass('has-value');
  }
});

4voto

Dustin Laine Punkte 36921

Eine einfache Lösung besteht darin, das Element in eine Variable aufzunehmen.

var elem = $("#div a");
if (elem.children().length > 0){
    elem.hide();
}

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