3

我正在从服务器获取一些数据,并且它已预先打包在元素中。问题是这些标签中有很多我不想要的东西。有没有人有任何建议只获取这些元素的 html?我有一些有用的东西,但它是hack-y,更糟糕的是,它假设我对标签的属性有所了解,而且我不会总是:

这是一些 JQuery(在此处查看实际操作:http: //jsfiddle.net/tPJau/):

$(function () {
    var rawString = "<div id='something' myAttr='somethingElse' > Free me!</div>";
    $('#content').append(rawString);
    var cleanString = $('#something').html();
    $('#something').remove();
    $('#content').append(cleanString);
});

这是一些html:

<div id="content">original content</div>

这给了我

<div id='content'>
    original content Free me!
</div>

因此,亲爱的社区,我向您提出的问题是,我如何在不知道任何关于 div 属性的情况下完成此操作?

4

6 回答 6

3

您可以将 HTML 传递给 JQuery 函数,它将在内存中创建一个元素。

然后,您可以像操作页面中实际存在的任何其他元素一样操作该元素。

$(function () {
    var rawString = "<div id='something' myAttr='somethingElse' > Free me!</div>";
    var cleanString = $(rawString).html(); // ... or .text()
    $('#content').append(cleanString);
});
于 2013-03-14T12:28:49.693 回答
1

试试这个

$(function () {
    var rawString = "<div id='something' myAttr='somethingElse' > Free me!</div>";
    var node = $('#content');
    node.html(node.html() + $(rawString).text());
});
于 2013-03-14T12:27:20.590 回答
1

如果您知道它,div那么;

 var cleanString = $('#content div').text();

另一种选择是使用;

var cleanString = $(rawString).text();
于 2013-03-14T12:27:32.700 回答
1

我相信您所追求的是“释放我!”的内容。您可以使用以下命令直接从 rawString 变量中提取它:$(rawString).html()。这只是用 jQuery 函数包装该 HTML,它允许您获取该元素的内部 HTML。

于 2013-03-14T12:27:56.147 回答
1

试试这个

$(function () {

    var rawString = "<div id='something' myAttr='somethingElse' > Free me!</div>";
    var rawHtml = $( rawString ).html();

    $('#content').append(        
        rawHtml
    );
});
于 2013-03-14T12:33:35.230 回答
1

正则表达式,如果你想:

var rawString = "<div id='something' myAttr='somethingElse' > Free me!</div>";
var re = /<[^>]+>([^<]*)/;
var matches = rawString.match(re);

$('#content').append(matches[1]);

jsfiddle:http: //jsfiddle.net/tPJau/4/

于 2013-03-14T12:45:57.777 回答