我从服务器获取一些数据,并且它已经预先打包在元素中。问题是这些标签中有很多我不想要的东西。有没有人有任何建议只获得这些元素的HTML?我有一些有用的东西,但它是黑客,更糟糕的是,它假设我知道标签的属性,我不会总是:
以下是一些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属性,我该如何完成这个#?
答案 0 :(得分:3)
您可以将HTML传递给JQuery函数,它将在内存中创建一个元素。
然后,您可以像在页面中实际存在的任何其他元素一样操纵该元素。
$(function () {
var rawString = "<div id='something' myAttr='somethingElse' > Free me!</div>";
var cleanString = $(rawString).html(); // ... or .text()
$('#content').append(cleanString);
});
答案 1 :(得分:1)
试试这个
$(function () {
var rawString = "<div id='something' myAttr='somethingElse' > Free me!</div>";
var node = $('#content');
node.html(node.html() + $(rawString).text());
});
答案 2 :(得分:1)
如果你知道它是div
那么;
var cleanString = $('#content div').text();
另一种选择是使用;
var cleanString = $(rawString).text();
答案 3 :(得分:1)
我相信你所追求的是“释放我!”的内容。您可以直接从rawString变量中提取它:$(rawString).html()
。这只是用jQuery函数包装HTML,它允许你获取该元素的内部HTML。
答案 4 :(得分:1)
试试这个
$(function () {
var rawString = "<div id='something' myAttr='somethingElse' > Free me!</div>";
var rawHtml = $( rawString ).html();
$('#content').append(
rawHtml
);
});
答案 5 :(得分: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/