可能重复:
获取所选元素的外部HTML
想象我们有这样的东西:
<div id="xxx"><p>Hello World</p></div>
Run Code Online (Sandbox Code Playgroud)
如果我们以这种方式调用.html函数:
$("#xxx").html();
Run Code Online (Sandbox Code Playgroud)
我们将得到:
<p>Hello World</p>
Run Code Online (Sandbox Code Playgroud)
但我需要得到:
<div id="xxx"><p>Hello World</p></div>
Run Code Online (Sandbox Code Playgroud)
那么,我需要做什么?我想在#xxx周围添加另一个包装器,但这不是一个好主意.
我如何获得'#container'上的html,包括'#container',而不仅仅是内部的内容.
<div id="container">
<div id="one">test 1 </div>
<div id="two">test 2 </div>
<div id="three">test 3 </div>
<div id="four">test 4 </div>
</div>
Run Code Online (Sandbox Code Playgroud)
我有这个获取#container内的html.它不包括#container元素本身.这就是我想要做的
var x = $('#container').html();
$('#save').val(x);
Run Code Online (Sandbox Code Playgroud)
我希望获得所选元素的整个html,而不仅仅是它的内容..html()根据文档使用javascripts innerHTML()方法.HTML:
<div id="divs">
<div id="div1">
<p>Some Content</p>
</div>
<div id="div2">
<p>Some Content</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
使用$('#divs:first').html();将只返回段落元素.我想得到整个元素的html,如下所示:
<div id="div1">
<p>Some Content</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我不能使用.parent,因为这将返回两个子div的html.
Javascript:我有一个节点(元素或文档)的DOM表示,我正在寻找它的字符串表示.例如,
var el = document.createElement("p");
el.appendChild(document.createTextNode("Test"));
Run Code Online (Sandbox Code Playgroud)
应该产量:
get_string(el) == "<p>Test</p>";
Run Code Online (Sandbox Code Playgroud)
我有强烈的感觉,我错过了一些简单的东西,但我找不到一个适用于IE,FF,Safari和Opera的方法.因此,outerHTML是没有选择的.
我知道可以使用该attr()方法检索单个属性,但我正在尝试迭代元素的所有属性.对于上下文,我在一些XML上使用jQuery ...
<items>
<item id="id123" name="Fizz" value="Buzz" type="xyz">
<subitem name="foo">
<subitem name="bar">
</item>
<item id="id456" name="Bizz" value="Bazz" type="abc">
<subitem name="meh">
<subitem name="hem">
</item>
</items>
Run Code Online (Sandbox Code Playgroud)
我已经能够用...迭代这些项目了...
$(xml).find('item').each(function() {
// Do something to each item here...
});
Run Code Online (Sandbox Code Playgroud)
但我希望能够为每个"项目"获取一系列属性,以便我可以迭代这些...
例如
$(xml).find('item').each(function() {
var attributes = $(this).attributes(); // returns an array of attributes?
for (attribute in attributes) {
// Do something with each attribute...
}
});
Run Code Online (Sandbox Code Playgroud)
我已经在jQuery文档中进行了一些搜索,在谷歌的其他地方进行了搜索,但没有运气.如果没有别的,我可能只是在排除与attr()jQuery对象的方法相关的结果时遇到问题.提前致谢.
说我有这个HTML:
<ul>
<li id="example"><strong>Awesome</strong> example text</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我希望能够做类似的事情,$('#example').html()但现在这样做显然只会得到<strong>Awesome</strong> example text.
那么我怎样才能获得包含所选元素的HTML ?
即. <li id="example"><strong>Awesome</strong> example text</li>
我正在使用jQuery 1.4.4.
.html()类selector($('.class').html())上的函数仅适用于匹配它的第一个元素.我想用class获得所有元素的值.class.
我们如何比较两个HTML元素是否相同?
我尝试过这件事,但没有运气
<div class="a"> Hi this is sachin tendulkar </div>
<div class="a"> Hi this is sachin tendulkar </div>
Run Code Online (Sandbox Code Playgroud)
然后点击按钮,我调用一个函数检查()
var divs = $(".a");
alert(divs.length); // Shows 2 here which is correct
if (divs.get(0) == divs.get(1)) alert("Same");
Run Code Online (Sandbox Code Playgroud)
但这不起作用.两个div中的一切都是一样的.除此之外,我们如何比较两个HTML元素是否完全一致.包括他们的innerHTML,className,Id及其属性.
这可行吗?
实际上,我有两个HTML文档,我想从它们中删除相同的内容所以两个元素可以具有相同的ID.
PS:在Crowder的宝贵意见后更新.如果我们将两个元素作为字符串进行比较,我们就不会得到匹配,因为它们的属性顺序可能会有所不同所以唯一的选择是迭代每个子属性并匹配.我仍然需要弄清楚完全有效的实施策略.
我知道$("#divId").html()会给我innerHtml.我还需要它的样式(可能通过类的方式定义)内联style属性或单独<style>标记内的所有样式/类.
可能吗?
更新
如果html是什么样的,<div id="testDiv">cfwcvb</div>并且#testDiv外部样式表中定义了css类?
更新2
很抱歉没有提前澄清这一点
如果这是我的HTML
<div id="divId">
<span class="someClass">Some innerText</span>
</div>
Run Code Online (Sandbox Code Playgroud)
样式在单独的样式表或头部样式中定义.
#divId {
clear: both;
padding: 3px;
border: 2px dotted #CCC;
font-size: 107%;
line-height: 130%;
width: 660px;
}
.someClass {
color: blue;
}
Run Code Online (Sandbox Code Playgroud)
然后,当我尝试获取内部html $("#divId").html()或调用任何其他自定义函数时,我需要类似下面的内容
<style>
#divId {
clear: both;
padding: 3px;
border: 2px dotted #CCC;
font-size: 107%;
line-height: 130%;
width: 660px;
}
.someClass {
color: blue;
}
</style>
<div id="divId">
<span class="someClass">Some innerText</span>
</div> …Run Code Online (Sandbox Code Playgroud)