2013-09-30 13 views
1

當我點擊鏈接時,我有以下函數來加載iFrames的內容。jQuery next()在哪裏使用它

我想實現的方法。接下來在時間來加載一個iframe和沒有在一起。

$('.toggle-next-div').click(function() { 
var iframe = $(this).next('.myiFrame'); 
iframe.attr("src", iframe.data("src")); 
}); 

HTML

<a href="#" class="toggle-next-div">Map</a> 
<div class="slidingDiv"> 
    <div style="margin-top:0"> 
     <span style="float:left;font-weight:bold">title</span> 
     <iframe class="myiFrame" data-src="www.yahoo.com" src="about:blank"></iframe> 
    </div> 
</div> 
<div class="slidingDiv"> 
    <div style="margin-top:0; margin-right:10px; margin-bottom:10px; text-align:right"> 
     <span style="float:left; font-weight:bold">title</span> 
     <iframe class="myiFrame" data-src="www.yahoo.com" src="about:blank"></iframe> 
    </div> 
</div> 
//and so on... 

的next()方法中不我的HTML工作,所以我需要爲這個HTML代碼

+1

我認爲你正在尋找'.siblings()'.. –

+0

我有.siblings更新()http://jsfiddle.net/bFhsS/13/可能ü看看?它似乎不起作用 – user2635574

回答

5

.next的替代解決方案選擇所選的直接下一個同級元素,即.slidingDiv元素(如果它與指定的選擇匹配),您可以使用.find().next()方法:

var iframe = $(this).next('.slidingDiv').find('.myiFrame'); 

如果您想選擇所有的下一個同級.slidingDiv元素的所有.myiFrame後代元素,你可以使用.siblings().nextAll()方法:

$(this).nextAll('.slidingDiv').find('.myiFrame').attr('src', function(){ 
    return $(this).data('src'); 
}); 
+0

這是非常好的。 http://jsfiddle.net/bFhsS/15/ – user2635574

0

看起來這是你所追求的

HTML:

<a href="#" class="toggle-next-div">Map</a> 
<div class="slidingDiv"> 
    <div style="margin-top:0"> 
     <span style="float:left;font-weight:bold">title</span> 
     <iframe class="myiFrame" data-src="http://www.yahoo.com" src="about:blank"></iframe> 
    </div> 
</div> 
<div class="slidingDiv"> 
    <div style="margin-top:0; margin-right:10px; margin-bottom:10px; text-align:right"> 
     <span style="float:left; font-weight:bold">title</span> 
     <iframe class="myiFrame" data-src="http://www.yahoo.com" src="about:blank"></iframe> 
    </div> 
</div> 

的Javascript(jQuery的):

var slidingDivs = $(".slidingDiv"); 
$('.toggle-next-div').click(function() { 
    var iframe = slidingDivs.next().find('.myiFrame'); 
    iframe.attr("src", iframe.data("src")); 
}); 
+1

請注意,你的下一個不應該包含選擇器,你應該運行一個「.find」後面的子元素。此外 - 你的雅虎網址需要一個協議(它會更好地檢測非跨源URL,但我認爲你沒有保持雅虎,它有'X-Frame-Options'設置爲'SAMEORIGIN',不允許你iframe來顯示它)。 – Luke