我将一些XML文件中的按钮附加到一些div中。每个div都有一个或两个按钮。
在每个()中,通过var附加按钮。但是在每个按钮插入之后,每个()都会覆盖var。
如何为每个追加创建一个唯一的var?
这是我想要的“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>";
});
我该怎么做?
提前谢谢......: - )
答案 0 :(得分: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中有一个长字符串可用于追加(buttonMarkup)
答案 1 :(得分: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(...
。
答案 2 :(得分: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();