解决关于jquery中$.get()方法总是报“HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchy”错的方法

解决关于jquery中$.get()方法总是报“HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchy”错的方法

  今天在看《jquery基础教程(第三版)》第十章的时候,运行随书下载的源码时总是不成功。起初以为书中自带的JS文件有错呢,但是测来测去也没发现哪里有问题。现在把源码附下:

1、这是书中带的HTML文件,其余的忽略不计,关键的就是下面这个a。

<a id="more-photos" href="pages/1.html">More Photos</a>

2、对应的JS文件如下(注意其中关键方法为$.get()):

 1 $(document).ready(function() {
 2   var pageNum = 1;
 3   $(‘#more-photos‘).click(function() {
 4     var $link = $(this);
 5     var url = $link.attr(‘href‘);
 6     if (url) {
 7       $.get(url, function(data) {
 8         $(‘#gallery‘).append(data);
 9       });
10       pageNum++;
11       if (pageNum < 20) {
12         $link.attr(‘href‘, ‘pages/‘ + pageNum + ‘.html‘);
13       }
14       else {
15         $link.remove();
16       }
17     }
18     return false;
19   });
20 });

3、错误。以上看起来似乎没有问题,但是在火狐和Chrome下测试都报错,其中火狐debug错误如下:

  整个一章的代码都是这样,但是测试在IE里没有问题。于是谷歌、百度各种乱搜一翻,貌似网上发生这样问题的还不在少数,但是搜来搜去各种回答都 有。一一试了下,发现其中的以为大哥的方法貌似正确,于是查了下jquery api,原来是问题出在$.get()方法上,书中的源码在使用这个方法的时候都没有指定这个方法的type参数,即jQuery.get(url, [data], [callback], [type])第四个参数。加上第四个参数‘html’以后就显示正常了。Okay了!灰常happy!现在运行OK了,已经没有错误了。

  具体方法如下:

  在上面的JS文件中的第7行$.get()方法上增加一个type参数即可,如下(注意第9行增加了一个‘html’的type参数):

 1 $(document).ready(function() {
 2   var pageNum = 1;
 3   $(‘#more-photos‘).click(function() {
 4     var $link = $(this);
 5     var url = $link.attr(‘href‘);
 6     if (url) {
 7       $.get(url, function(data) {
 8         $(‘#gallery‘).append(data);
 9       },‘html‘);
10       pageNum++;
11       if (pageNum < 20) {
12         $link.attr(‘href‘, ‘pages/‘ + pageNum + ‘.html‘);
13       }
14       else {
15         $link.remove();
16       }
17     }
18     return false;
19   });
20 });

  由于是新手,也只找到了怎么解决这个问题,但是没有找到为什么会出现这样的问题。以后使用$.ajax()\$.get()等这几个方法的需要注意一下子了。

  参考:http://blog.sina.com.cn/s/blog_995c1f630101a36l.html(这位大哥的错误发生在$.ajax()方法上)

时间: 2024-11-07 02:11:23

解决关于jquery中$.get()方法总是报“HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchy”错的方法的相关文章

jquery IE6 select.val() bug报错解决办法

原文地址:http://hi.baidu.com/kinghmx/item/395dbac3261292dcef183b52 最近在写一个页面,在出了ie6外的所有浏览器中都正常(ie7,8,9,  firefox, chrome), IE6下提示 “无法设置selected属性.未指明的错误”. 后来发现是jquery 在 ie6 下操作 select控件有BUG. 我程序中是这样使用的: $("#genre").val(0); 改成: setTimeout(function(){ 

JSONP原理及jQuery中的使用

JSONP原理 JSON和JSONP JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于在浏览器和服务器之间交换信息. JSONP(JSON With Padding),就是打包在函数调用中的的JSON(或者包裹的JSON). JSON是一种数据格式,JSONP是一种数据调用方式. 1 //JSON 2 3 { 4 5 “name”: “sb” 6 7 } 1 //JSONP 2 3 callback({ 4 5 “name”: “sb” 6 7 }

Android 解决Execution failed for task &#39;:app:clean.&#39;报错

说实话,我还真是没见过比Execution failed for task ':app:clean.'更为恶心,更为不要脸的bug啦,代码没啥问题,一下子行让你爽爽,一下子又不鸟你啦,研究了下,终于找到稳定的解决方法. (1)跑到报错的那个build父目录,强制(不管你用的是啥删除软件,360还是其他的,态度一定要强硬)把build文件夹删掉. (2)网上很多都说这时候重启studio即可,当俺发现不管用,就是不管用,那就以管理员身份命令行跑去项目目录中执行一遍gradlew clean即可,这

spark特殊问题 在IDEA中spark(enableHiveSupport)中使用 insert overwrite时对空表可以正常写入但是如果表不为空就会报错处理方法

在IDEA中spark(enableHiveSupport)中使用 insert overwrite时对空表可以正常写入但是如果表不为空就会报错处理方法 在网上看到不少回答都是答非所问,或者说更改Project Structre下Modules项目中的Language level 为6 - @Override in interfaces也没用 现象分析与解决方法 1.idea无法spark.sql无法正常运行insert overwrite语句原因有两个:1)mysql-connector-ja

dialogic d300语音卡驱动重装后启动报错问题解决方法

dialogic d300 驱动重装后 dlstart  报错解决 问题描述:dlstart  后如下报错 [[email protected] data]#dlstop Stopping Dialogic Services... Stopping Clocking Daemon:[  纭畾  ] Stopping ClockingServer:[  纭畾  ] Stopping Telephony System Monitor:[  纭畾  ] Stopping Dialogic(R)

[ jquery 过滤器 nextUntil([exp|ele][,fil]) ] 此方法用于在选择器的基础之上搜索被选元素的后面的所有同级元素,方法返回 selector 与 stop 之间的每个元素之后的所有同级元素,并且提供第二个参数来用于实现过滤效果,多个参数使用逗号相隔

此方法用于在选择器的基础之上搜索被选元素的后面的所有同级元素,方法返回 selector 与 stop 之间的每个元素之后的所有同级元素,并且提供第二个参数来用于实现过滤效果,多个参数使用逗号相隔,参数解释如下: 概述: 查找当前元素之后所有的同辈元素,直到遇到匹配的那个元素为止. 如果提供的jQuery代表了一组DOM元素,.nextUntil()方法也能让我们找遍所有元素所在的DOM树,直到遇到了一个跟提供的参数匹配的元素的时候才会停下来.这个新jQuery对象里包含了下面所有找到的同辈元素

【原创】通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: &#39;\xF0...

这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错问题,本篇足够了. 一.定位错误 定位错误绝对是至关重要的一环.我建议遇到问题耐心分析一下比较好,毕竟“不是所有的牛奶都叫特仑苏”. 引起同一个问题的可能有很多,别人的解决方案也许并不适合自己. 那先看看问题出现在哪了,报错如下: 发现的确是编码错误, 16进制的错误提示(\xF0\x9F\x94\xA5\x

一招解决OpenERP8.0安装旧版模块报错

有喜欢尝鲜的网友开始玩8.0了,可是版本还没发布,社区的很多特别好的模块还没有升级到8,所以经常碰到模块无法安装的问题. No module name osv 网友提出将模块的 from osv import osv,fields 改为 from openerp.osv import osv,fields 其实这是一个编程规范问题,旧版模块代码里很多这种导入方式,一个一个改对于不懂代码的或者openerp新手是不现实的. 众所周知,openerp的运行入口是openerp-server.py,在

通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: &#39;\xF0...

原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错问题,本篇足够了. 一.定位错误 定位错误绝对是至关重要的一环.我建议遇到问题耐心分析一下比较好,毕竟“不是所有的牛奶都叫特仑苏”. 引起同一个问