【问题标题】:$.parseHTML().error() is not a function error when dynamically creating DOM elements$.parseHTML().error() 不是动态创建DOM元素时的函数错误
【发布时间】:2023-03-10 14:22:01
【问题描述】:

我正在使用 $.parseHTML() 从动态字符串创建 img 元素 所以我需要检查img 是否使用给定的src 成功创建
ps:图片托管在同一台服务器上,而不是外部链接。

<img id='lorem' src='someURL'>

我使用了.error() 方法,因为我在这个Question 中犯规了。
通过使用它,我让它按预期工作:

$('#lorem').error(function(){alert('img does not exist')})

然后当我再次开始使用$.parseHTML() 时它不起作用
控制台显示$.parseHTML(...).error is not a function
所以我使用jQuery.type() 进行调试,我得到了一个数组!这不是预期的,因为我只创建了一个元素。
当我尝试仅访问数组的一个成员时,它仍然无法正常工作
有什么建议 ?提前致谢。

【问题讨论】:

  • @DinoMyte 为什么这么讨厌?
  • 不讨厌兄弟,只是更正拼写,以便更容易理解标题:)

标签: jquery html html-parsing


【解决方案1】:

问题是因为$.parseHTML 返回一个数组,该数组没有error 方法。您需要先创建一个实际的 DOMElement,然后才能将 error 事件处理程序挂接到它。

从您的代码来看,$.parseHTML 是多余的,因为您可以正常创建元素,如下所示:

$('<img src="invalidURL" />').error(function() {
    alert('img does not exist');
})

Updated fiddle

【讨论】:

  • 感谢它的工作,我认为它会返回一个 DOM 元素,因为它说 pars..HTML,但它实际上返回了一个数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 2017-07-08
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多