$(...).each 不是函数
$(...).each is not a function
我正在尝试使用 Web 控制台获取页面上所有 h2 标记内的文本。
我发现的所有内容都说要使用每个,我都试过了
var anArray = [];
$('h2').each( function(i,e) {
anArray.push($(e).innerHTML);
});
但它 returns TypeError: $(...).each
不是函数。
我也试过使用
$.each('h2', function(i,e) {
anArray.push($(e).innerHTML);
});
但是,我再次得到的是 TypeError: $.each
不是一个函数?
您必须使用 .html() 而不是 .innerHTML:
$.each($('h2'), function(index, value){
alert($(value).html());
});
Here 工作 fiddle.
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
如果你写的代码没有 $()
例如
var1.each(function(){}) //its wrong//each function is not defined error
$(var1).each(function(){}) //its right
Note: For Chrome, do not expect $ is always jQuery
.
您可以将 $
放入控制台以检查它是否 returns 默认 ƒ $(selector, [startNode]) { [Command Line API] }
,如果是则意味着 $ 没有为 jQuery
.
定义
幸运的是,我们有以下方法可以尝试:
- 解决使用
$
的冲突,让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
放入控制台,如果它不是 returns undefined
,而是 returns ƒ (t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w}
,这意味着 $
没有为 [=21 定义=]现在。
接下来您可以继续输入您的区域代码,您会发现现在可以正常使用了。
参考: https://blog.wplauncher.com/run-jquery-in-chrome-console/
- 在 Chrome 中使用
.js
文件,然后调试 JavaScript 文件。
- 此外,对于某些特定版本的 Chrome,UI 中有一个选项可以设置
page context
(可能在最新版本中删除了这个功能!)
.
此错误的最常见原因是因为 JQuery 未包含在您的网站中,这就是它显示此错误的原因。您必须在您的网站中包含 JQuery 或使用 vanilla js 重写您的代码。
我正在尝试使用 Web 控制台获取页面上所有 h2 标记内的文本。
我发现的所有内容都说要使用每个,我都试过了
var anArray = [];
$('h2').each( function(i,e) {
anArray.push($(e).innerHTML);
});
但它 returns TypeError: $(...).each
不是函数。
我也试过使用
$.each('h2', function(i,e) {
anArray.push($(e).innerHTML);
});
但是,我再次得到的是 TypeError: $.each
不是一个函数?
您必须使用 .html() 而不是 .innerHTML:
$.each($('h2'), function(index, value){
alert($(value).html());
});
Here 工作 fiddle.
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
如果你写的代码没有 $() 例如
var1.each(function(){}) //its wrong//each function is not defined error
$(var1).each(function(){}) //its right
Note: For Chrome, do not expect $ is always
jQuery
.
您可以将 $
放入控制台以检查它是否 returns 默认 ƒ $(selector, [startNode]) { [Command Line API] }
,如果是则意味着 $ 没有为 jQuery
.
幸运的是,我们有以下方法可以尝试:
- 解决使用
$
的冲突,让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
放入控制台,如果它不是 returns undefined
,而是 returns ƒ (t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w}
,这意味着 $
没有为 [=21 定义=]现在。
接下来您可以继续输入您的区域代码,您会发现现在可以正常使用了。
参考: https://blog.wplauncher.com/run-jquery-in-chrome-console/
- 在 Chrome 中使用
.js
文件,然后调试 JavaScript 文件。
- 此外,对于某些特定版本的 Chrome,UI 中有一个选项可以设置
page context
(可能在最新版本中删除了这个功能!)
此错误的最常见原因是因为 JQuery 未包含在您的网站中,这就是它显示此错误的原因。您必须在您的网站中包含 JQuery 或使用 vanilla js 重写您的代码。