1

リンクをクリックしたときに iFrames コンテンツをロードする次の関数があります。

.next メソッドを実装して、一度に 1 つの 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 コードの代替ソリューションが必要です

4

2 に答える 2

5

.next選択した要素のすぐ次の兄弟、つまり.slidingDiv要素 (指定されたセレクターと一致する場合.find()) を選択します。次の.next()メソッドを使用できます。

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

.myiFrame次のすべての兄弟要素のすべての子孫要素を選択する場合は、またはメソッド.slidingDivを使用できます。.siblings().nextAll()

$(this).nextAll('.slidingDiv').find('.myiFrame').attr('src', function(){
   return $(this).data('src');
});
于 2013-09-30T14:50:43.740 に答える
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"));
});
于 2013-09-30T15:05:02.173 に答える