我有这段代码:
var location = . . .
$body.append('<img class="bgimg" src="' + location+'>');
它没有用。我检查了控制台输出(没有任何)并尝试了多个不同的东西(包括检查开发人员工具中的页面源和元素选项卡),然后注意到我在"
之前忘记了>
最后。
所以,我的问题是:jQuery显然足够聪明,不能添加格式错误的元素 - 但是它是否会生成错误消息,如果是这样,它放在哪里?
答案 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。
并且,考虑一下:你认为,如果你试图隐藏一个已经被隐藏的元素,它应该喊出错误信息吗?