javascript jQuery primer hijo de “este”



5 Answers

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

element.children(":first").toggleClass("redClass");
javascript jquery jquery-selectors css-selectors

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

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

Javascript:

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

¿Cómo puedo hacer referencia al: primer hijo de elemento?




element.children().first();

Encuentra a todos los niños y consigue primero de ellos.




Acabo de escribir un complemento que utiliza .firstElementChild si es posible, y vuelve 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.




Por favor, úselo de esta forma. Primero, asigne un nombre de clase para etiquetar p como "myp".

A continuación, utilice el siguiente código

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



Si quieres primer hijo inmediato necesitas

    $(element).first();

Si desea un primer elemento particular en el dominio desde su elemento, entonces use a continuación

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

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






Related