1

我正在尝试对html()特定的孩子使用 jquery 的功能,例如:

<div id="main">
  <p>I am p tag</p>
  <span> i am span tag</span>
</div>

现在,如果我们$("#main").html()同时使用它pspan但如果我只想要p,我该怎么办?

4

2 回答 2

4

尝试如下,

$("#main p").html()

这会给我我是 p 标签,但我想要<p> I am p tag</p>

试试下面的outerHTML,

$('#main p')[0].outerHTML

或者你可以把它做成 jQuery 函数,这样你就可以链接。

jQuery.fn.outerHTML = function(s) {
    var _this = this[0];
    return _this.outerHTML?_this.outerHTML:(s ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html());
};

$('#main p').outerHTML()

演示:http: //jsfiddle.net/skram/PMjKR/1/

参考: 获取选定元素的外部 HTML

于 2012-06-14T16:06:30.257 回答
2

许多方法取决于您的确切要求。

标准 CSS 选择器:

$('#main p').html();

过滤儿童。

$('#main').children('p').html();

通过获取 main 的第一个孩子

$('#main:first-child').html();

在看到 OP 对另一个答案的评论后进行编辑 ,我将简单地添加 html() 替换为 [0].outerHTML 的位置

在这里查看选择器

于 2012-06-14T16:10:26.227 回答