我的 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]
它显示的错误是classes is undefined。
我认为我得到的对象有问题,但这最近才有效,我不知道站点中的任何更改可能会导致此问题。
如有任何意见,我将不胜感激。
编辑:
更多信息。这发生在两个应该不相关的插件(由不同的人制作)上。当您将图像上传到服务器(或选择以前上传的图片)后尝试将其插入到帖子中时,就会发生这种情况。
正如我之前所说,这个错误是凭空出现的,它在几天前按预期运行。从那时起,我唯一能想到的就是域名发生了变化,但我看不出这有什么关系。
最佳答案
jQuery
选择器总是返回一个jQuery 对象
,但是当length
为0
时,没有元素被返回找到匹配您提供的选择器。在您的示例中,您已确认未选择任何内容,因为 jQuery 对象的 length
为 0
。执行检查是否像这样选择了一个元素:
var $els = jQuery('img',html),
classes;
if ($els.length) {
classes = $els.attr("class");
}
请记住,您的 DOM 查询受限于您作为 html 参数传入的内容。如果您只是想在页面上查找图像,请执行以下操作:var $els = jQuery('img');
关于javascript - 无法访问 jquery 中的对象(prevObject?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30709987/