3

サーバーからデータを取得していますが、要素にあらかじめパッケージ化されています。問題は、これらのタグに不要なものがたくさんあることです。これらの要素の 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 属性について何も知らずにこれを達成するにはどうすればよいでしょうか?

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

あなたが求めているのは「Freeme!」というコンテンツだと思います。これを使用して、rawString変数から直接抽出できます$(rawString).html()。これは、そのHTMLをjQuery関数でラップするだけで、その要素の内部HTMLを取得できます。

于 2013-03-14T12:27:56.147 に答える
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 に答える
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 に答える