355 Stimmen

jQuery erstes Kind von "this"

Ich versuche, "this" von einem angeklickten Bereich an eine jQuery-Funktion zu übergeben, die dann jQuery auf das erste Kind des angeklickten Elements ausführen kann. Kann nicht scheinen, um es richtig zu bekommen...

<p onclick="toggleSection($(this));"><span class="redClass"></span></p>

Javascript:

function toggleSection(element) {
  element.toggleClass("redClass");
}

Wie referenziere ich das :first-child eines Elements?

10voto

theIV Punkte 24844

Haben Sie versucht

$(":first-child", element).toggleClass("redClass");

Ich denke, Sie wollen Ihr Element als Kontext für Ihre Suche festlegen. Es könnte ein besserer Weg, dies zu tun, die einige andere jQuery-Guru wird hier hüpfen und werfen auf Sie :)

5voto

Alnitak Punkte 324207

Ich habe gerade ein Plugin geschrieben, das .firstElementChild wenn möglich, und greift bei Bedarf auf die Iteration über jeden einzelnen Knoten zurück:

(function ($) {
    var useElementChild = ('firstElementChild' in document.createElement('div'));

    $.fn.firstChild = function () {
        return this.map(function() {
            if (useElementChild) {
                return this.firstElementChild;
            } else {
                var node = this.firstChild;
                while (node) {
                    if (node.type === 1) {
                        break;
                    }
                    node = node.nextSibling;
                }
                return node;
            }
        });
    };
})(jQuery);

Sie ist nicht so schnell wie eine reine DOM-Lösung, aber in jsperf-Tests Unter Chrome 24 war es um mehrere Größenordnungen schneller als jede andere jQuery-Selektor-basierte Methode.

4voto

vishal gupta Punkte 39

Bitte verwenden Sie ihn wie folgt Als erstes geben Sie dem Tag p einen Klassennamen wie "myp".

dann den folgenden Code verwenden

$(document).ready(function() {
    $(".myp").click(function() {
        $(this).children(":first").toggleClass("classname"); // this will access the span.
    })
})

3voto

Prabhakar Undurthi Punkte 6202

Dies kann mit einem einfachen Zauber wie diesem geschehen:

$(":first-child", element).toggleClass("redClass");

Referenz: http://www.snoopcode.com/jquery/jquery-first-child-selector

-2voto

fahimeh ahmadi Punkte 639

Ich benutze

 $('.txt').first().css('display', 'none');

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