有没有办法使用jquery(或javascript)获取html:
<div class="elem2 elem"><span>text2.1</span><span>text2.2</span></div>
来自这个html:
<div class="container">
<div class="elem1 elem">
<span>text1.1</span>
<span>text1.2</span>
</div>
<div class="elem2 elem">
<span>text2.1</span>
<span>text2.2</span>
</div>
</div>
我尝试了几种方法:
alert($('div.container').children().eq(1).html());
alert($('div.container > :nth-child(2)')).html());
alert($($('div.container').children()[1]).html());
alert($('div.elem2').html());
但它总是给我相同的结果:
<span>text2.1</span> <span>text2.2</span>
没有warper div。
我已经将代码示例放在: http://jsfiddle.net/kZBUr/
plz help !!
答案 0 :(得分:3)
您正在寻找原生outerHTML
属性,但并非所有浏览器都支持此属性。这是一个跨浏览器的解决方案。
示例: http://jsfiddle.net/patrick_dw/kZBUr/3/
var selected = $('div.container > .elem2.elem');
selected = selected[0].outerHTML || $('<div>').append(selected.clone()).html();
$('#result').text(selected);
答案 1 :(得分:1)
答案 2 :(得分:0)
我认为.eq(1)函数是从零开始的索引。
请改为尝试:
alert($('div.container').children().eq(0).html());
alert($('div.container > :nth-child(1)')).html());
alert($($('div.container').children()[0]).html());
alert($('div.elem2').html());