javascript - 无法访问 jquery 中的对象(prevObject?)

标签 javascript jquery html

我的 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 对象,但是当length0 时,没有元素被返回找到匹配您提供的选择器。在您的示例中,您已确认未选择任何内容,因为 jQuery 对象的 length0。执行检查是否像这样选择了一个元素:

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/

相关文章:

javascript - jquery ajax 内部循环返回 statusText 错误,在 IE 中一定时间后状态为 0

javascript - 为出生日期字段组合日期选择器边框问题

javascript - 第一次查看输出时无法隐藏文本

javascript - 如何像梯形一样对齐文本?

javascript - LitElement connectedCallback() 与 firstUpdate()

javascript - 如何访问 Meteor 辅助函数中的 URL 参数?

javascript - 在创建它时引用 javascript 对象属性(使用 this)

php - 对 Laravel 的简单 Ajax 请求不起作用

javascript - highchart 中的动画系列

html - 带有图例的字段集右上角的位置图标