[javascript] jQuery первый ребенок из "this"



4 Answers

Используйте функцию children с помощью :first selector, чтобы получить единственный первый element :

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

Я пытаюсь передать «это» из щелкнутого диапазона в функцию jQuery, которая затем может выполнить jQuery в первом дочернем элементе этого элемента щелчка. Кажется, не получается правильно ...

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

Javascript:

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

Как я могу ссылаться на: first-child элемента?




Я только что написал плагин, который, если возможно, использует .firstElementChild , и при необходимости возвращается к итерации по каждому отдельному узлу:

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

Это не так быстро, как чистое решение DOM, но в тестах jsperf в Chrome 24 он был на несколько порядков быстрее, чем любой другой метод на основе селектора jQuery.




Если вы хотите немедленного первого ребенка, вам нужно

    $(element).first();

Если вам нужен конкретный первый элемент в dom из вашего элемента, используйте ниже

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

попробуйте: http://jsfiddle.net/vgGbc/2/




element.children().first();

Найдите всех детей и получите первое из них.







Related