2012-01-14 10 views
3

で検索I次のコードを持っている:

$.post(
    url, 
    send_to, 
    function(data) { 
     console.log($(data).find("img"); 
    } 
); 

私は、サーバーからいくつかの結果を取得し、その結果のHTMLコード内imgタグのsrc値を見つけたいんだが、しかし、それは動作していません。

受信データにimgタグをどのように検索できますか?

+3

'data'変数に受け取っているコードの例を教えてください。 –

答えて

2

コードは正常に動作するはずです。 jQuery function$(data))は、有効なHTML文字列を(切り離された)ノードツリーに変換します。

find()は、それが呼び出される要素または要素のコレクションの子孫を検索することに注意してください。 <img>がHTMLの最上位にある場合は、代わりにfilter()を使用してください。たとえば:<img>がトップレベルにない場合

<!-- Returned HTML: --> 
<p>Here's a nice image of a kitten:</p> 
<img src="demonic_kitten.png" /> 
<p>Muhahahaha!</p> 
/* JavaScript (callback function): */ 
var success = function(data) { 
    console.log($(data).filter("img"); 
}; 

は、返されたデータが有効なHTMLで、最初の場所で<img>が含まれていることを確認します。

+0

まさに!良い答え...例のHTMLは、すべてのeventualitiesに答えるのではなく、非常に役立つだろう;) –

+0

フィルタはありがとうございます。見つけない:( – user1016265

1

data変数にHTMLの内容が含まれているかどうかわからないと、どこが間違っているのか分かりにくいです。そうでない場合は

console.log($(data).attr("src")); 

:あなたはそれだけで全く別のIMGのためのあなたのIMGタグを検索しようとしfindを使用して、AJAX要求から返されていますIMGタグだし、このように調整する必要があることを確認している場合はIMGタグがHTMLに返されていて、別のタグがたくさんある場合は、DIVタグのようなものでHTMLをラップすることをおすすめします。たとえば、次のような場合はJavaScriptを返します。

<p>Something</p> 
<p>Something else</p> 
<img src="something" /> 
<p>Something</p> 

...むしろ、このような何かを返します:

<div> 
    <p>Something</p> 
    <p>Something else</p> 
    <img src="something" /> 
    <p>Something</p> 
</div> 

...あなたの元のコードの仕事をするでしょう。

$.post(
    url, 
    send_to, 
    function(data) { 
     console.log($(data).find("img"); 
    }, 
    "html" 
); 

・ホープ、このことができます:私はまた、あなたのjQueryのAJAXリクエストにdataTypeオプションを追加することを考えるでしょう! :)

関連する問題