2012-07-19 93 views
1

我可以使用一些幫助隔離一個或兩個元素,並將它們放入JavaScript變量。我仍然在學習如何正確識別DOM中的東西,我必須想象我正在嘗試做什麼是可能的。如何在使用fancybox時從此span元素創建一個javascript變量?

考慮以下幾點:

$('.fancybox').fancybox({ 
    'autoScale': false, 
    'type': 'iframe', 
    'padding': 0, 
    'closeClick': false, 
    helpers: { 
     overlay: { 
      closeClick: false 
     } 
    }, 
    afterShow: function() { 
     $("#overlay_content_top").show(); 
     $("#overlay_content_bottom").show(); 
    }, 
    afterClose: function() { 
     $("#overlay_content_top").hide(); 
     $("#overlay_content_bottom").hide(); 
    } 
}); 

<div class ="example"> 
<a class="fancybox" href="http://my-iframe.example"><img src="myimage.jpg" width="x" height="y" /></a> 
**<span>Important Information I need</span>** 
</div> 

我需要把HTML從。實例跨度到一個變量,然後將其應用到在顯示的fancybox的東西。

因此,像這樣在瘋狂的僞代碼:

var getname = $(this).html('.example span'); 

$('.inherit_span').html(getname); 

我在網頁上有二十個不同的項目,可以點擊,我不希望有產生不同的ID或名字對每個項目,我會而只需在調用fancybox函數時從跨度中獲取html,然後將該名稱應用於lightbox顯示中的另一個元素。任何幫助讚賞。

回答

1

你可能有方案,其中有多個<a>標籤與後他們<span>標籤多,在這種情況下使用.next()方法beforeShow回調中像

beforeShow: function(){ 
var getname = $(this.element).next('span').html(); 
$('.inherit_span').html(getname); 
} 

注意:爲了使可變getname提供的回調外,在腳本的開頭聲明它像

<script> 
var getname; 
. 
. 
+0

說沒有我牛逼!完善! – absentx 2012-07-19 08:04:35

1

只要改變:

var getname = $(this).html('.example span'); 

到:

var getname = $('.example span').html(); 

或:

$('.inherit_span').html($('.example span').html()); 
1

其實你是很接近!首先你必須選擇讓你的span。您可以使用text()方法或html()方法獲取文本或HTML!

var html = $('div.example > span').html() 

然後,你必須讓你的元素,你想放的文字,並用值/變量使用括號內的html()方法來設置它。

$('.inherit_span').html(html); 

使用html()沒有得到的值,使用html()價值!

text()方法的工作原理幾乎相同,但過濾掉任何HTML格式。

相關問題