0

items配列を含むパラメーターを持つコールバックがあります。

[<article>..</article>,<article>...</article>,<article>..</article>]

私がする必要があったのは、これらのアイテムに参加することだったので、私がしたことは次のとおりです。

items = items.join('');

しかし、私console.log(items)が見ているとき:

[object HTMLElement][object HTMLElement][object HTMLElement][object HTMLElement] 

この配列を適切にマージするにはどうすればよいですか?

4

2 に答える 2

1

を使用して HTML に自動的にシリアル化できないオブジェクトがありますjoin()

お使いのブラウザが をサポートしている場合outerHTML、次のことができます...

var html = $.map(items, function(item) { return item.outerHTML; }).join("");

jsFiddle .

そうでなければ、あなたはできる...

var fauxDocFrag = $("<div />");
$.each(items, function(key, item) { fauxDocFrag.append(item); });
var html = fauxDocFrag.html();

jsFiddle .

于 2012-09-05T09:52:30.337 に答える
1

ここで、上記の問題の完全なビンを作成しました。デモリンクを通過できます。

デモ http://codebins.com/bin/4ldqp7n HTML

<input type="button" id="btn1" value="Get Object Array Text" />
<input type="button" id="btn2" value="Reset" />
<div id="result">
</div>

jQuery

$(function() {
    var items = ["<article>Article-1:Text</article>", "<article>Article-2:Text</article>", "<article>Article-3:Text</article>", "<article>Article-4:Text</article>", "<article>Article-5:Text</article>"];

    $("#btn1").click(function() {
        var result = "";
        $.each(items, function(key, item) {
            if ($(item).text().trim() != "") {
                if (key > 0) result += " ";
                result += $(item).text().trim();
            }
        });
        if (result != "") {
            $("#result").html(result);
            $("#result").show('slow');
        }
    });

    //Reset Result
    $("#btn2").click(function() {
        $("#result").html('').css('display', 'none');
    });
});

デモ http://codebins.com/bin/4ldqp7n

于 2012-09-05T11:11:28.817 に答える