jQuery在.each函数中返回.each函数的值

时间:2013-09-03 10:18:17

标签: jquery wordpress-plugin return-value each

好的..这有点难以解释,我不知道如何称呼标题。无论如何,我做了一个小提琴,使其更清晰:see this fiddle

我想要什么?

我正在使用Wordpress插件,你在小提琴中看到的将是后端添加短代码的功能。所以有一种短代码生成器,使用户更容易。用户必须能够根据需要添加尽可能多的字段组。

有什么问题?

所以......我需要获得完全正确的短代码以使插件正常工作。将使用“就绪”按钮生成短代码。现在,如果只有一个字段组,则输出(短代码)为:

  

metakey =“< field_key:field1,title:,multiple:yes,>

这是正确的。

现在,如果按“添加”按钮添加另一个字段组,然后按下就绪按钮,则输出错误。它将输出每个字段两次。像这样:

  

metakey =“< field_key:field1,title:title 1,multiple:yes,field_key:field2,title:title 2,multiple:yes,>< field_key:field1,title:title 1,multiple:yes ,field_key:field2,title:title 2,multiple:yes,>

这不正确,这必须是:

  

metakey =“< field_key:field1,title:title 1,multiple:yes,>< field_key:field2,title:title 2,multiple:yes,>

我知道问题必须在“每个”功能的顺序/设置中。我的想法是第二个.each函数jQuery('div.' + dataid + ' ' + '.' + getcheck).each(function ()只能在它上面的.each函数中工作。事实并非如此..

如何正确设置这些,以便输出如上所述?

所以这个问题可能就在这里:

jQuery('.filter-checkbox:checked').each(function () {
    dataid = jQuery(this).data('id');
    getchecked = jQuery(this).val();
    getcheck = jQuery(this).data('rel');

    val += getchecked + '="';
});

jQuery('.' + dataid).each(function () {
    val += '<';

    jQuery('div.' + dataid + ' ' + '.' + getcheck).each(function () {

但也许HTML中的某些更改也可以,但不确定。

希望我的问题很清楚。提前谢谢。

1 个答案:

答案 0 :(得分:1)

更改行

jQuery('div.' + dataid + ' ' + '.' + getcheck).each(function () {

为:

jQuery(this).find('.' + getcheck).each(function () {

请参阅:http://jsfiddle.net/bTER5/60/