开发者问题收集

$(...).each 不是一个函数

2015-08-10
78530

我尝试使用 Web 控制台获取页面上所有 h2 标签内的文本。

我发现的所有方法都说使用 each,我已尝试过

var anArray = [];

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

但是它返回 TypeError: $(...).each 不是函数。

我也尝试过使用

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

但是同样,我得到的只是 TypeError: $.each 不是函数?

3个回答

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 中

Aramil Rey
2015-08-10

如果你编写的代码没有 $() 例如

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

$(var1).each(function(){}) //its right
Ambala Chandrashekar
2017-09-18

Note: For Chrome, do not expect $ is always 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. 在 Chrome 中使用 .js 文件,然后调试 JavaScript 文件。

参考: Chrome DevTools Snippets

  1. 此外,对于某些特定版本的 Chrome,UI 中有一个选项可以设置 页面上下文 可能在最新版本中删除了 此功能!)

img

Bravo Yeung
2019-04-26