jQuery $(...).each 不是函数

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/31912136/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 16:50:07  来源:igfitidea点击:

$(...).each is not a function

jqueryeachtypeerror

提问by M. Sa

I'm trying to get the text inside all h2tags on a page, using the web console.

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

All I've found says to use each, I've tried

我发现的所有内容都说要使用每个,我已经尝试过

var anArray = [];

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

But it returns TypeError: $(...).eachis not a function.

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

I've also tried using

我也试过使用

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

But again, all I get is TypeError: $.eachis not a function?

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

回答by Aramil Rey

1)Paste:

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

on your console (includes jQuery)

在您的控制台上(包括 jQuery)

2)Wait 1 sec and paste:

2)等待 1 秒并粘贴:

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

Now, all contents of h2 tags of that page should be stored into h2Arr

现在,该页面的 h2 标签的所有内容都应该存储到 h2Arr 中

回答by Ambala Chandrashekar

if you write code like without $() for example

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

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

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

回答by Bravo Yeung

Note: For Chrome, do not expect $ is always jQuery.

注意:对于 Chrome,不要期望 $ 总是jQuery

You can put $into console to check if it returns default ? $(selector, [startNode]) { [Command Line API] }, if yes means $ is not defined for jQuery.

您可以放入$控制台检查它是否返回 default ? $(selector, [startNode]) { [Command Line API] },如果是,则表示没有为 定义 $ jQuery

Luckily that we have below ways to try:

幸运的是,我们有以下方法可以尝试:

  1. Solve the conflict of using $, let it be jQuerywithout any ambiguity
  1. 解决使用的冲突$,让它jQuery没有任何歧义

Firstly, you can put this code snippet

首先,你可以把这个代码片段

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

into the Console, then put $.noConflictinto console, if it not returns undefined, but returns ? (t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w}, it means $is not defined for JQuerynow.

进入Console,然后放入$.noConflictconsole,如果不返回undefined,而是返回? (t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},表示$暂时没有定义JQuery

Next you can continue to input your regional code, then you will find it works well now.

接下来您可以继续输入您的区域代码,然后您会发现它现在可以正常工作了。

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

参考https: //blog.wplauncher.com/run-jquery-in-chrome-console/



  1. Using .jsfile instead in Chrome, then debug the JavaScript file.
  1. .js在 Chrome 中使用file 代替,然后调试 JavaScript 文件。

Refer:Chrome DevTools Snippets

参考:Chrome DevTools 片段

  1. Besides, for some specific version of Chrome, there is a option in UI to set the page context(probably removedthis function in latest version!)
  1. 此外,对于某些特定版本的 Chrome,UI 中有一个选项可以设置page context可能在最新版本中删除了此功能!)

img.

图片.

回答by ASammour

The most common cause of this error is because JQuery is not included in your website, that's why it shows this error. You have to include JQuery in your website or rewrite your code in vanilla js.

此错误的最常见原因是您的网站中未包含 JQuery,这就是它显示此错误的原因。你必须在你的网站中包含 JQuery 或者用 vanilla js 重写你的代码。

回答by bloC

You have to use .html() instead of .innerHTML:

你必须使用 .html() 而不是 .innerHTML:

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

Herea working fiddle.

是一个工作小提琴。