2011-09-20 27 views
0

讓說我有以下的DOM元素我的頁面上的DOM元素創建一個JavaScript變量:如何從使用jQuery

<div id="name">Sharon</div> 

Q1: 使用jQuery,我怎麼轉#的內容名稱轉換爲JS變量,以便我可以在DOM上的其他 位置重用它?

Q2: 什麼是使用jQuery將JS變量呈現到我的HTML中的最佳方式?更進一步,如果我想刪除一個元素的內容,然後用變量替換它,那麼最好的方法是什麼?

回答

2

要保存 「沙龍」 的一個變量,使用html()

var content = $('#name').html(); 

,以使其在其他地方(更換任何東西,這是在HTML標記之前):

$('#example').html(content); 

或者, append它在#example標籤中的任何內容之後,使用

$('#example').append(content); 

A我也看看prepend()

+0

完美運作。謝謝。 – sevens

1

Q1:你可以得到的HTML與.html()

var content = $('#name').html(); 

如果您正在尋找文本(無定型),然後使用.text()函數:

var content = $('#name').text(); 

Q2:設置參數爲.html()函數集合的,有針對性元素的HTML:

$('#otherName').html('I am the <i>new</i> content'); 

同樣,如果你只設置文本,在我的代碼.text()更換.html()

+0

也可以使用'$('#name')。text()'來獲取元素的innerText(它等於'$('#name')。html()'in這個簡單的例子,但對於更復雜的情況可能會有所不同)... – ampersand

+0

謝謝,我已經添加到我的答案。 – Blender

+0

感謝您花時間回覆Blender。 – sevens

0

我知道你的意思。與.html()你剛剛得到一個選擇元素內的字符串,你不能綁定事件或類似的東西與固體JavaScript,當你選擇元素與jQuery或jQuery然後.html()

當您爲jQuery選擇器定義一個變量時,它與您使用實體JavaScript定義的變量不同。

$('body') == document.getElementsByTagName('body')[0] 
//false 

使用.html()不會解決你的問題:

('body').html() == document.getElementsByTagName('body')[0] 
//false 

.html()給你一個字符串等於給裏面的元素是什麼:

$('body').html() == document.getElementsByTagName('body')[0].innerHTML.toString() 
//true 

事實是,jQuery選擇始終返回包含匹配給定查詢事件的每個元素的數組,如果查詢返回一個元素,它將返回一個包含一個元素的數組。因此,選擇每個jQuery選擇器數組的任何元素,您將獲得一個實際的DOM元素。

$('body')[0] == document.getElementsByTagName('body')[0] 

在您的瀏覽器開發者工具試試這個看結果! :D