我正在尝试在我正在使用的自定义插件中使用wordpress'媒体上传弹出窗口。
到目前为止一切正常,我能够上传图像并将其插入到字段中,但我还有另一个字段需要链接到上传的pdf。
tb_show('', 'media-upload.php?type=image&TB_iframe=true;height=200');
window.send_to_editor = function(html) {
console.log(html);
console.log(jQuery('a', html));
console.log(jQuery('a', html).attr('href'));
console.log(jQuery('img', html));
console.log(jQuery('img', html).attr('src'));
imgurl = jQuery('a', html).attr('href');
current_upload.prev().val(imgurl);
tb_remove();
}
对于图像,这将是我的输出,这是正确的,因为它能够选择图像源
<a href="http://to.local/wp-content/uploads/2012/07/Screen-Shot-2012-06-20-at-12.15.52-PM.png"><img src="http://to.local/wp-content/uploads/2012/07/Screen-Shot-2012-06-20-at-12.15.52-PM-300x221.png" alt="" title="Screen Shot 2012-06-20 at 12.15.52 PM" width="300" height="221" class="alignnone size-medium wp-image-49" /></a> to.js:54
[]
undefined
[
<img src="http://to.local/wp-content/uploads/2012/07/Screen-Shot-2012-06-20-at-12.15.52-PM-300x221.png" alt title="Screen Shot 2012-06-20 at 12.15.52 PM" width="300" height="221" class="alignnone size-medium wp-image-49">
]
http://to.local/wp-content/uploads/2012/07/Screen-Shot-2012-06-20-at-12.15.52-PM-300x221.png
但是当我选择PDF时,我得到了这个:
<a href='http://to.local/wp-content/uploads/2012/07/01-Mobile-Characteristics-and-Interaction-Design-Principles-Slides2.pdf'>01 Mobile Characteristics and Interaction Design Principles (Slides)</a> to.js:54
[]
undefined
[]
undefined
所以我无法弄清楚为什么jQuery('img',html)工作得很好而jQuery('a',html)没有,而在这两种情况下返回的html中都有一个链接。
答案 0 :(得分:2)
html本身就是一个“a”。
console.log(jQuery(html).attr('href'));
答案 1 :(得分:2)
假设html = jQuery('<a href="http://to.local/wp-content/uploads/2012/07/Screen-Shot-2012-06-20-at-12.15.52-PM.png"><img src="http://to.local/wp-content/uploads/2012/07/Screen-Shot-2012-06-20-at-12.15.52-PM-300x221.png" alt="" title="Screen Shot 2012-06-20 at 12.15.52 PM" width="300" height="221" class="alignnone size-medium wp-image-49" /></a>');
,html
<a>
元素。
jQuery('a', html)
尝试在<a>
的子项中选择html
,由于此处没有<a>
元素,因此不返回任何结果。
由于<img>
是<a>
中html
父项的子项,jQuery('img', html)
有效。
在您的情况下,要获取href
的{{1}}属性,请执行以下操作:
html
(如果jQuery(html).attr("href")
已经是jQuery对象,则删除jQuery()