我在wordpress主题中遇到了jquery函数的问题。我已经完全使用了这个函数并且它有效。该函数返回通过wordpress uploader上传的Image的ID。
以下是相关部分:
// extract the img-ID from class attribute
var jt = jQuery('img', html).attr('class');
alert(html);
alert(jt);
j1 = jt.split(' ');
这两个警报只是要弄明白,会发生什么。 alert(html)返回:
<img src="http://www.xyz.com/files/2012/03/stage.jpg" alt="" title="" width="1000" height="371" class="alignnone size-full wp-image-6" />
但是alert(jt)返回“undefined”。
任何想法?如果你能提供帮助,那就太棒了。
扬
答案 0 :(得分:7)
您对html变量使用context参数是不正确的。根据{{3}},该上下文参数应该是DOM元素,文档或jQuery对象。它不能是HTML字符串。
如果,你拥有的是一个字符串,并且你想将它变成一个DOM对象,你可以通过多种方式实现。
此代码将从您拥有的html字符串创建一个DOM对象,然后从该DOM对象中检索该类属性。
var html = '<img src="http://www.xyz.com/files/2012/03/stage.jpg" alt="" title="" width="1000" height="371" class="alignnone size-full wp-image-6" />';
var item = jQuery(html);
var jt = item.attr('class');
alert(jt);
j1 = jt.split(' ');
您可以在此处查看:jQuery documentation
答案 1 :(得分:2)
你的问题在这里:
jQuery('img', html)
上下文为html
,显然html
是一张图片,因此您在img
内找不到img
。
修改强>
如果html
为<img src="http://www.xyz.com/files/2012/03/stage.jpg" alt="" title="" width="1000" height="371" class="alignnone size-full wp-image-6" />
,那么你可以像这样抓住这个类:
var klass = $(html).attr('class');
// You could do this to create an array of all classes
var klasses = $(html).attr('class').match(/\S+/g);
答案 2 :(得分:1)
您提供的上下文变量html
当时未定义,您应该将其定义为图像所属的DOM元素。
$(document).ready( function() {
// extract the img-ID from class attribute
var html = jQuery('.some-class');
var jt = jQuery('img', html).attr('class');
alert(html);
alert(jt);
j1 = jt.split(' ');
});
答案 3 :(得分:0)
attr('class')
确实有用。可能你的上下文var(html
)只是未定义。
顺便说一句,要存储数据,使用HTML5 custom data- attributes代替类是有意义的。
答案 4 :(得分:0)
当拥有给定的html字符串时,这通常可以起作用:
$(html).attr('class');
答案 5 :(得分:0)
没有html
var jt = jQuery('img').attr('class');
alert(jt);
j1 = jt.split(' ');
alert(j1);
答案 6 :(得分:0)
问题出在var jt = jQuery('img', html)
,来自jquery document,第二个参数是jquery对象的上下文。检查http://jsfiddle.net/hYKnd/上已修改的程序。
答案 7 :(得分:-1)
从jquery 1.6开始(见docs for .attr),.attr
从返回空字符串转为返回undefined
。
打开此jsfiddle http://jsfiddle.net/QVqXC/并更改加载的jquery版本,并查看输出消息的更改方式。