[javascript] jQuery primer hijo de "esto"



Answers

Use la función de children con el :first selector para obtener el primer element secundario del element :

element.children(":first").toggleClass("redClass");
Question

Estoy tratando de pasar "esto" de un lapso cliqueado a una función jQuery que luego puede ejecutar jQuery en el primer elemento secundario del elemento cliqueado. Parece que no puede hacerlo bien ...

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

Javascript:

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

¿Cómo hago referencia al: primer hijo del elemento?







element.children().first();

Encuentre a todos los niños y obtenga el primero de ellos.




Si quiere el primer hijo directo que necesita

    $(element).first();

Si quieres un primer elemento particular en el dom de tu elemento, utiliza debajo

    var spanElement = $(elementId).find(".redClass :first");
    $(spanElement).addClass("yourClassHere");

probar: http://jsfiddle.net/vgGbc/2/




Acabo de escribir un complemento que usa .firstElementChild si es posible, y .firstElementChild a iterar sobre cada nodo individual si es necesario:

(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);

No es tan rápido como una solución DOM pura, pero en las pruebas jsperf bajo Chrome 24 fue un par de órdenes de magnitud más rápido que cualquier otro método basado en el selector jQuery.




Related