$ (...). каждый из них не является функцией

Я пытаюсь получить текст во всех тегах h2 на странице, используя веб-консоль.

Все, что я нашел, говорит, чтобы использовать каждый, я пытался

var anArray = [];

$('h2').each( function(i,e) {
    anArray.push($(e).innerHTML);
});

Но он возвращает TypeError: $(...).each не является функцией.

Я также пытался использовать

$.each('h2', function(i,e) {
        anArray.push($(e).innerHTML);
    });

Но опять же, все, что я получаю, это TypeError: $.each - это не функция?

Ответ 1

1) Вставить:

var script = document.createElement('script');
script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(script);

на вашей консоли (включает в себя JQuery)

2) Подождите 1 секунду и вставьте:

var h2Arr = [];
$('h2').each( function() {
    h2Arr.push($(this).html());
});

Теперь все содержимое тегов h2 этой страницы должно быть сохранено в h2Arr.

Ответ 2

если вы пишете код как без $() например

var1.each(function(){}) //its wrong//each function is not defined error

$(var1).each(function(){}) //its right

Ответ 3

Примечание: для Chrome не ожидайте, что $ всегда будет jQuery.

Вы можете поместить $ в консоль, чтобы проверить, возвращает ли он значение по умолчанию ƒ $(selector, [startNode]) { [Command Line API] }, если да, значит, $ не определен для jQuery.

К счастью, у нас есть следующие способы попробовать:

  1. Решите конфликт использования $, пусть это будет jQuery без какой-либо двусмысленности

Во-первых, вы можете поместить этот фрагмент кода

var jq = document.createElement('script');
jq.src = "https://code.jquery.com/jquery-3.3.1.min.js";  /* Include any online jquery library you need */
document.getElementsByTagName('head')[0].appendChild(jq);

в консоль, затем поместите $.noConflict в консоль, если она не возвращает undefined, а возвращает ƒ (t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w}, это значит, что $ не определен для JQuery сейчас.

Затем вы можете продолжить ввод своего регионального кода, а затем вы увидите, что он работает хорошо.

См.: https://blog.wplauncher.com/run-jquery-in-chrome-console/


  1. Вместо этого используйте файл .js в Chrome, затем отладьте файл JavaScript.

См. Chrome DevTools Snippets

  1. Кроме того, для некоторой конкретной версии Chrome в пользовательском интерфейсе есть возможность установить page context (возможно, эта функция была удалена в последней версии!)

img.

Ответ 4

Вы должны использовать .html() вместо .innerHTML:

$.each($('h2'), function(index, value){
   alert($(value).html());
});

Здесь рабочая скрипка.

Ответ 5

Самая распространенная причина этой ошибки - JQuery не включен в ваш веб-сайт, поэтому он показывает эту ошибку. Вы должны включить JQuery на свой сайт или переписать свой код в vanilla js.