2016-07-31 21 views
1

私は、DOM要素を含むjsオブジェクトslider.controlNavを持っています。私はクラス'flex-active'とリンクしている画像の可変ソースに保存する必要があります。jsオブジェクトからimgソースを取得

jQuery.each(slider.controlNav, function(i, val) { 
    var dom_object = slider.controlNav.get(i); 
     console.log(dom_object) 
    }); 

トップコードが返されます。

<a href="#0" class="flex-active"> 
    <img src="img/slider-portfolio/logos/__ico__Fason$Active.png"> 
</a> 

<a href="#1> 
    <img src="img/slider-portfolio/logos/__ico__Web$Active.png"> 
</a> 

<a href="#2" class="flex-active"> 
    <img src="img/slider-portfolio/logos/__ico__New$Active.png"> 
</a> 

マイコード:コンソールで、その後

jQuery.each(slider.controlNav, function(i, val) { 
    var dom_object = slider.controlNav.get(i).find('img').attr('src'); 
     console.log(dom_object) 
    }); 

私が持っているエラー:

Uncaught TypeError: slider.controlNav.get(...).find is not a function

+0

代わりに – haim770

+0

show console.log($(val).html()) ' – RomanPerekhrest

+0

あなたはおそらく' $(val).find( 'img')。attrフィドル](http://jsfiddle.net)これ? –

答えて

0

get機能はあなたに基本となるDOMを与えますオブジェクト。それをjQueryオブジェクトに変換する必要があります。

$(slider.controlNav.get(i)).find('img').attr('src');

+0

質問の最後の行と最初の行を見落としました;) – Andreas

0

を試してみて、このコードで確認してください。

jQuery("slider.controlNav a").each(function() { 
    var dom_object = jQuery(this).find('img').attr('src'); 
    console.log(dom_object) 
}); 
0

あなたが繰り返し処理の現在の要素を指し、thisまたはvalを使いたいん:次のように単なるJSを使用し、また

jQuery.each(slider.controlNav, function(i, val) { 
    var src = jQuery(this).eq(i).find('img').attr('src'); 
    console.log(src) 
}); 

slider.controlNav.forEach(function(val) { 
    var src = val.querySelector('img').src; 
    console.log(src); 
}); 
0

参照してください。 this jsbin

var flexActiveControlNavs = slider.controlNav.find(".flex-active"); 

jQuery.each(flexActiveControlNavs, function(i, val) { 
    var dom_object = flexActiveControlNavs.eq(i).find('img').attr('src'); 
    console.log(dom_object); 
}); 

これは、クラス "flex-active"を持つ要素の子であるイメージソースのみを返します。

関連する問題