2017-01-30 8 views
1

私のページにタグがあります。iFrame(id = iframe1)です。それらのいくつかは、などmyimg.jpgに設定src属性、 'myimg_small.jpg'、myimg_large.jpg属性の部分的な値で要素を検索

を持って は私がmyimgのようなsrc#iframe1内部のすべてのものを見つけようとしていますので、私は

images = $('#iframe1').contents().find('[src*="myimg"]') 

を書きましたが、以下のようなエラーが表示されます

Uncaught Error: Syntax error, unrecognized expression: [src*="myimg"])

at Function.Sizzle.error (jquery-1.8.2.js:4679)
at tokenize (jquery-1.8.2.js:4739)
at select (jquery-1.8.2.js:5099)
at select (jquery-1.8.2.js:5276)
at Function.Sizzle [as find] (jquery-1.8.2.js:3941)
at init.find (jquery-1.8.2.js:5372)
at <anonymous>:1:36

ここには何がありますか?

更新

alert($('#if').contents().find('[src*="ss"]').next().html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<iframe id='if'> 
 
    <img src='sss.jpg' /> 
 
    <div> 
 
    scdscd 
 
    </div> 
 
</iframe>

+0

デバッグできるサンプルを作成できますか? – Rajesh

+5

あなたは余分な閉じ括弧を持っています。 – Enfyve

+1

JSFiddleコードが無効ですHTML - iFrameタグ内のコードが魔法のようにiFrameコンテンツにならない - ここでコードを '<>'スニペットとして追加しました。 https://developer.mozilla.org/en/docs/Web/HTML/Element/iframe – mplungjan

答えて

0

は単純に実行します。

var x = $("img[src$='myimg.jpg']"); 
alert(x.attr("src")); 
+0

imgがiframeの内側にあるので動作しません – Imad

0

使用contains selector、そしてEnfyveはcommentsで述べたように)余分を削除します。

images = $('#iframe1').contents().find('[src~="myimg"]') 
0

iframeを使用すると間違っています。 iframeはsrc属性を使用し、他のページの内容を読み込むために使用する必要があります。 iframeはその子要素をそのタグに直接含める必要はありません。

これを試すことができます。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<iframe id='if' src="1.html"> 
</iframe> 


//1.html 
... 
    <img src='sss.jpg' /> 
    <div> 
    scdscd 
    </div> 

次のように試してみることができます。

alert($('#iframe1').contents().find('[src*="ss"]').next().html()); 
+0

これはちょうど私が言ったようにサンプルを作成することでした。 – Imad

+1

@Imad、つまり、別のページの内容を読み込むためにiframeを使う必要があります。このようにiframeタグにサブタグを追加することは役に立たず、乱用のように見えます。 –

0

セレクタが正しく動作しています。あなたは働いているjsbin hereを見ることができます。

iframeの誤った使用が問題の原因です。

iframeにコンテンツを追加する場合は、srcdoc属性を使用してsrc属性またはHTML文字列を使用してURLを指定する必要があります。

The srcdoc attribute specifies the HTML content of the page to show in the inline frame.

リファレンスiframe srdoc

0

は、あなたのiframe srcがあなたのメインページと同じドメインをターゲットにしていることを確認します。それ以外の場合は、iframeコンテンツにアクセスすることはできません。これはXSS(Cross Site Scripting)と呼ばれ、主要なブラウザでは防げます。

iframeソースが同じドメインにあり、まだコンテンツにアクセスできない場合は、setTimeoutがiframeコンテンツの読み込みを待機していることを確認してください。

関連する問題