2013-11-21 19 views
5
  1. jQuery.parseHTML()產生一個數組。我正在尋找一種方法將其轉換回字符串。這是我最關心的問題。jQuery.parseHTML的反轉

  2. parseHTML()將字符串視爲html的唯一方法嗎?

  3. Bassically,我被解析我的字符串作爲HTML,這樣我可以使用jQuery的find()函數來符合特定元素,然後藉此在一個替換隻在它的一部分代碼(參見my previous question更多細節)。那麼,是解析爲必要的HTML?

+0

* 「那麼,是解析的HTML必要嗎?」 *是。如果必須以字符串形式返回,可以將dom集合包裝到另一個元素中,選擇該元素,然後獲取它的html,但由於瀏覽器html解析的差異,並不能保證html將採用原始格式。 –

+1

'var string = $(string).find('element')。replaceWith('other_element')。end()。get(0).outerHTML;' – adeneo

+0

http://jsfiddle.net/5MjAJ/ – adeneo

回答

1

聽起來像你想在飛行中構建一些DOM元素。只需將HTML字符串傳遞給jQuery函數即可($())。否需要parseHTML()

var mySet = $('<div>blah blah blah<span>some stuff</span></div>'); 

// perform operations on the set just like you would a regular jQuery set 
var divsInMySet = mySet.find('div'); 

// be aware some functions will return unexpected results since your set exists in memory not on the page 
// for example anything related to positioning or visibility will fail 
var whoKnows = mySet.position(); 
var dontDoThis = mySet.is(':visible'); 
2
  1. jQueryElement.outerHTML();

  2. 號你也可以使用jQuery的快捷方式:$('<input type="submit" />');

  3. 號你也可以嘗試的字符串操作,但有一個很好的機會,jQuery的方法更簡單,更可靠。

+6

outerHTML不是一個jQuery函數,它是一個javascript屬性。另外,它不會工作來做你看似聲稱的事情,它會採用一個jQuery對象,並將整個對象的HTML字符串吐出。 有一個很好的例子可以擴展jQuery來做你上面聲稱的東西,雖然在這裏:http:// stackoverflow。com/questions/2419749/get-selected-elements-outer-html(傑西卡的回答) – SeanKendle

1

當我試圖從HTML對象轉換回字符串在我的網頁我無法使用功能

var my_variable="$("<div></div>"); 
$("my_variable").html(); 

後來我發現,這樣做,使用下面的代碼的把戲。那是,如果你要轉換從上述評論的變量回字符串 的「MYSET」您可以使用此

$(mySet).html($(mySet).clone()).html(); 
0

這是爲了解決上面的問題簡單的方式真正棘手

例子:

var $html = $($.parseHTML(html));//transform html string into a jQuery element 
$html.append('<div id="other_test"></div>');//handling 
console.log("string again, but edited", $html.get(0).outerHTML);//converting it to string again 
1

一個簡單的函數

function htmlToSource(selector){ 
return $('<div />').append($(selector).clone()).html(); 
}; 

htmlToSource('body');