簡體   English   中英

jQuery將DOM元素作為字符串

[英]jQuery get DOM element as string

說我有

$(":input[type=text]:first")

如何得到

<input type="text" value="" size="28" maxlength="140" tabindex="1" placeholder="search" class="textbox" name="q" autocomplete="off">

假設我在SO上運行它?

更新我不想調用.parent()因為我在父元素中有很多其他東西。

怎么樣

$(selector).prop("outerHTML");

一個老技巧:

var selector = ":input[type=text]:first";

var str = $(selector).clone().wrap('<div/>').parent().html();

更新您不必擔心調用.parent()因為您正在使用原始選擇器的孤立克隆。

通過附加到創建的元素來使用jQuery.html()

$('<div/>').append($(":input[type=text]:first").clone()).html()

這是一個提供示例的小提琴: http//jsfiddle.net/Zwbmx/1/

關於@Blazemonger已經回答的內容,如果你要將這個html內容發送到服務器,那么刪除所有不添加任何值的不必要的標簽,空格和換行符是值得的。

var quote = $(".invoice") //get hidden print-version DOM element
    .clone()
    .wrap('<div/>')
    .parent()
    .html()
    .replace(/    /g, '') //get rid of indentation spaces
    .replace(/(\r\n|\n|\r)/gm, "") //get rid of line breaks
    .replace(/<!--[\s\S]*?-->/g, ""); //get rid of comment tags

我的html有50kb,在擺脫這些東西后,它減少到4kb!

怎么樣:

var str = $(selector)[0]

也許添加一個檢查,返回一個元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM