$(...)。每个不是函数

问题描述 投票:18回答:4

我正在尝试使用Web控制台将文本放在页面上的所有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不是一个功能?

jquery each typeerror
4个回答
32
投票

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中


6
投票

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

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

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

0
投票

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

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

Here是一个工作小提琴。


0
投票

注意:对于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. 在Chrome中使用.js文件,然后调试JavaScript文件。

参考:Chrome DevTools Snippets

  1. 此外,对于某些特定版本的Chrome,UI中有一个选项可用于设置page context(可能在最新版本中删除了此功能!)

.

© www.soinside.com 2019 - 2024. All rights reserved.