1

私が取り組んでいるカスタム プラグインで 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 にリンクがあります。

4

2 に答える 2

2

html自体は「a」です。

console.log(jQuery(html).attr('href'));
于 2012-07-17T04:20:34.843 に答える
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>親の子なのでhtmljQuery('img', html)動作します。

あなたの場合、のhref属性を取得するには、次のhtmlようにします。

jQuery(html).attr("href")

jQuery()( ifhtmlがすでにjQueryオブジェクトである場合は削除します)

于 2012-07-17T04:21:11.847 に答える