jQuery:唯一的 Each() var 附加

发布于 2024-11-11 15:23:47 字数 560 浏览 3 评论 0原文

我将 XML 文件中的一些按钮附加到一些 div 中。每个 div 中都有一两个按钮。

在每个 Each() 中,通过 var 附加按钮。但在每个按钮插入后,Each() 都会覆盖 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>";
});

我该怎么做?

先感谢您... :-)

I'm appending some buttons from an XML-file, into some divs. Each div has one or two buttons in them.

In each Each(), append the buttons through a var. But after each button insert, the Each() overwrites the var.

How can I make a unique var, for each append??

It's the "buttonMarkup" I would like to have, as unique vars, so they don't overwrite eachother...

$(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>";
});

How do I do this??

Thank you in advance... :-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

对你而言 2024-11-18 15:23:47

只需在等号上加一个 + 即可连接字符串,

$(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)

just a + to the equal and it will concatenate the string

$(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>";
});

so then you will have one long string in buttonMarkup that you can use to append(buttonMarkup)

若水微香 2024-11-18 15:23:47

您可以创建一个数组:

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(...

You could create an array:

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>");
});

or just append to the variable:

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

Also note that it should be $(this).find('button').each(....

[浮城] 2024-11-18 15:23:47

如果您正在处理一个大字符串,您可以直接连接,如下所示:

$(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(),例如this:

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();

If you're dealing with one big string, you can just concatenate, like this:

$(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>";
});

Or, if you want separate variables I recommend an array you can add (.push()) to and manage, like this:

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>");
});

For example turning this into a string is just a simple .join(), like this:

var buttonMarkup = buttonMarkupArray.join('');

You can also clean up your selectors further than the above by using .find() which will use the native selector engine better, like this:

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>");
});

or even better using .map(), like this:

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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文