我的WP插件中的一个函数只是随机(据我所知)停止工作。
以下是有问题的代码:
window.send_to_editor = function(html) {
var classes = jQuery('img',html).attr('class');
var items = classes.split(" ");
... more stuff here
}
我已经确认 html 变量确实是 img html标记。这是当我执行对象的console.log时显示的firebug( console.log(jQuery(' img',html)); ):
Object[]
context -> undefined
jquery -> "1.11.2"
length -> 0
prevObject -> Object[img.alignnone.size-full.wp-image-1234 name.jpg]
它显示的错误是 类未定义 。
我认为我得到的对象存在问题,但最近这种做法很常见,我不知道网站上有任何可能造成这种情况的变化。
我很感激您的任何意见。
编辑:
更多信息。这种情况发生在两个应该是无关的插件(由不同的人制作)。在将图像上传到服务器(或选择以前上传的图片)后,您会尝试将其插入帖子中。
正如我之前所说的那样,这个错误突然出现了,它几天前就像预期的那样工作了。从那时起,我唯一可以想到的就是域名,但我无法看到它是如何相关的。
答案 0 :(得分:2)
jQuery
选择器始终返回jQuery object
,但当length
为0
时,找不到与您提供的选择器匹配的元素。在您的示例中,您已确认未选择任何内容,因为jQuery对象的length
为0
。检查是否选择了这样的元素:
var $els = jQuery('img',html),
classes;
if ($els.length) {
classes = $els.attr("class");
}
请记住,您的DOM查询受限于您传入的html参数。如果您只是想在页面上找到图像,请执行以下操作:var $els = jQuery('img');
答案 1 :(得分:1)
我终于设法解决了这个问题;关键是使用html
将jQuery.parseHTML()
字符串变量解析为正确的HTML。感谢所有帮助过的人!