$(":input[type=text]:first")
如何获得
<input type="text" value="" size="28" maxlength="140" tabindex="1" placeholder="search" class="textbox" name="q" autocomplete="off">
假设我就这么办的呢?
更新我不想打电话给.parent()
,因为我在父元素中有很多其他的东西。
$(":input[type=text]:first")
如何获得
<input type="text" value="" size="28" maxlength="140" tabindex="1" placeholder="search" class="textbox" name="q" autocomplete="off">
假设我就这么办的呢?
更新我不想打电话给.parent()
,因为我在父元素中有很多其他的东西。
var selector = ":input[type=text]:first";
var str = $(selector).clone().wrap('<div/>').parent().html();
更新您不必担心通话.parent()
因为你与一个孤立的克隆工作的原始选择器。
克隆为什么重要?如果我正在创建一个项目,那会很重要吗? – casraf
内部元素不是即时创建的;它是从DOM中选择的,所以我们克隆它以避免更改DOM。 – Blazemonger
$(“a”)。html('')。prop(“outerHTML”))? –
通过附加到创建的元素来使用jQuery.html()。
$('<div/>').append($(":input[type=text]:first").clone()).html()
下面是一个小提琴提供一个例子:http://jsfiddle.net/Zwbmx/1/
但您现在已将原始元素移出DOM。 – Blazemonger
这将删除DOM的输入并将其附加到新创建的div。您需要首先克隆输入。 –
@将您的右键火箭我修改了代码以首先克隆元素。 –
如何:
var str = $(selector)[0]
也许增加一个检查有一个元素返回。
以下是@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!
如何
$(selector).prop("outerHTML");
这应该是正确的答案 –
刚一说明:你真的应该引用您的属性选择。 '$( “:输入[类型= '文本']:第一”)'。 –
是的,这只是一个例子,那不是实际的选择器。我通常尝试避免使用属性选择器。 – bevacqua
[Get selected element's external HTML](http://stackoverflow.com/questions/2419749/get-selected-elements-outer-html) – Blazemonger