jQuery在哪里发送错误消息?

时间:2016-03-26 19:01:55

标签: jquery debugging

我有这段代码:

var location = . . .
$body.append('<img class="bgimg" src="' + location+'>');

它没有用。我检查了控制台输出(没有任何)并尝试了多个不同的东西(包括检查开发人员工具中的页面源和元素选项卡),然后注意到我在"之前忘记了>最后。

所以,我的问题是:jQuery显然足够聪明,不能添加格式错误的元素 - 但是它是否会生成错误消息,如果是这样,它放在哪里?

2 个答案:

答案 0 :(得分:3)

jQuery不会在任何地方写错误。如果发生错误并且jQuery没有捕获它,它最终会被脚本引擎报告给控制台,但是jQuery本身并没有做任何类型的错误报告。

我认为这更多是因为它没有检测到错误而不是其他任何错误。例如,在这种情况下,它归结为jQuery v1.12.2中的第4631行(未经说明):

tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];

...用你的字符串,实际上是:

tmp.innerHTML = '<img class="bgimg" src="...>';

浏览器不会为此引发错误(Chrome无论如何都不会),但它也没有向tmp添加任何元素。所以jQuery最终没有任何附加内容。它并没有故意没有附加任何东西,在添加该字符串时它只是没有看到要添加的内容。

答案 1 :(得分:0)

jQuery没有错误报告。

因为jQuery是用JavaScript编写的,所以任何无效的jQuery / JavaScript代码都会导致浏览器控制台中的错误消息(按 F12 )。

这非常棘手,因为您必须非常小心地调试代码:

$("mysuperclass").hide();

无法使用,因为您忘记使用.作为前导来使用课程。虽然,它可能是一个有效的选择器,如果你有一个名为mysuperclass的标签的自定义html。

并且,考虑一下:你认为,如果你试图隐藏一个已经被隐藏的元素,它应该喊出错误信息吗?