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
$(...).each is not a function
提问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: $(...).each
is 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: $.each
is 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:
幸运的是,我们有以下方法可以尝试:
- Solve the conflict of using
$
, let it bejQuery
without any ambiguity
- 解决使用的冲突
$
,让它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 $.noConflict
into 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 JQuery
now.
进入Console,然后放入$.noConflict
console,如果不返回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/
- Using
.js
file instead in Chrome, then debug the JavaScript file.
.js
在 Chrome 中使用file 代替,然后调试 JavaScript 文件。
Refer:Chrome DevTools Snippets
- Besides, for some specific version of Chrome, there is a option in UI to set the
page context
(probably removedthis function in latest version!)
- 此外,对于某些特定版本的 Chrome,UI 中有一个选项可以设置
page context
(可能在最新版本中删除了此功能!)
.
.
回答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 重写你的代码。