1

XMLファイルからいくつかのdivにいくつかのボタンを追加しています。各divには、1つまたは2つのボタンがあります。

各Each()で、変数を介してボタンを追加します。ただし、各ボタンの挿入後、Each()は変数を上書きします。

追加ごとに一意の変数を作成するにはどうすればよいですか?

それは私がユニークな変数として持っていたい「buttonMarkup」なので、それらはお互いを上書きしません...

$(this).find('button', this).each(function(index) {
    var type = $(this).attr("type");
    var label = $(">label", this).text();
    var wunLink = $(">link", this).text();
    buttonMarkup = "<a href='" + wunLink + "' class='" + type + "'><span>" + label + "</span></a>";
});

どうすればいいですか?

前もって感謝します... :-)

4

3 に答える 3

2

+を等しくすると、文字列が連結されます

$(this).find('button', this).each(function(index) {
    var type = $(this).attr("type");
    var label = $(">label", this).text();
    var wunLink = $(">link", this).text();
    buttonMarkup += "<a href='" + wunLink + "' class='" + type + "'><span>" + label + "</span></a>";
});

したがって、buttonMarkupには、追加に使用できる1つの長い文字列があります(buttonMarkup)

于 2011-06-01T12:50:08.287 に答える
1

配列を作成できます。

var buttonMarkup = [];

$(this).find('button').each(function(index) {
    var type = $(this).attr("type");
    var label = $(this).children("label").text();
    var wunLink = $(this).children("link").text();
    buttonMarkup.push("<a href='" + wunLink + "' class='" + type + "'><span>" + label + "</span></a>");
});

または、変数に追加するだけです。

buttonMarkup += "<a href='...";

また、である必要があることに注意してください$(this).find('button').each(...

于 2011-06-01T12:51:03.043 に答える
1

1つの大きな文字列を処理している場合は、次のように連結できます。

$(this).find('button').each(function(index) {
    var type = $(this).attr("type");
    var label = $(">label", this).text();
    var wunLink = $(">link", this).text();
    buttonMarkup += "<a href='" + wunLink + "' class='" + type + "'><span>" + label + "</span></a>";
});

.push()または、個別の変数が必要な場合は、次のように()を追加して管理できる配列をお勧めします。

var buttonMarkupArray = [];
$(this).find('button').each(function(index) {
    var type = $(this).attr("type");
    var label = $(">label", this).text();
    var wunLink = $(">link", this).text();
    buttonMarkupArray.push("<a href='" + wunLink + "' class='" + type + "'><span>" + label + "</span></a>");
});

たとえば、これを文字列に変換するのは.join()、次のように単純です。

var buttonMarkup = buttonMarkupArray.join('');

.find()次のように、ネイティブセレクターエンジンをより適切に使用することにより、上記よりもさらにセレクターをクリーンアップすることもできます。

var buttonMarkupArray = [];
$(this).find('button').each(function(index) {
    var type = $(this).attr("type");
    var label = $(this).find("label").text();
    var wunLink = $(this).find("link").text();
    buttonMarkupArray.push("<a href='" + wunLink + "' class='" + type + "'><span>" + label + "</span></a>");
});

または.map()、次のように使用することをお勧めします。

var buttonMarkupArray = $(this).find('button').map(function() {
    var type = $(this).attr("type");
    var label = $(this).find("label").text();
    var wunLink = $(this).find("link").text();
    return "<a href='" + wunLink + "' class='" + type + "'><span>" + label + "</span></a>";
}).get();
于 2011-06-01T12:52:11.530 に答える