0

我正在尝试创建一个与此类似的字符串

[row]
[column_6]
[element-html]
   MY HTML 
[/element-html]
[/column_6]
[/row]

这是基于行数生成的,然后是行内的列数,然后是元素的数量,这是一个 HTML 示例。

<div class="row-box">
   <div class="column span6">
   <div class="type-html">MY HTML<input type="hidden" name="html" value="MY HTML"/></div>
   </div>
   <div class="column span6">
   <div class="type-html">MY HTML<input type="hidden" name="html" value="MY HTML"/></div>
   </div>
</div>

<div class="row-box">
   <div class="column span6">
   <div class="type-html">MY HTML<input type="hidden" name="html" value="MY HTML"/></div>
   </div>
   <div class="column span6">
   <div class="type-html">MY HTML<input type="hidden" name="html" value="MY HTML"/></div>
   </div>
</div>

这是我写的一些 jQuery

$('.row-box').each(function(row) {

    $(this).find('.column').each(function(column) {

        $(this).find('input').each(function(element) {

            var string = $(this).map(function () {
               var $this = $(this).attr("name"),
                   $name = $this.attr("name")

               return '['+row+']['+column+'][element-'+$name+']'+ $this.val() + '[/element-'+$name+'][/column][/row]';

            }).get().join(" ");


        });

    });
});

这显然不起作用,因为它在1['+row+']['+column+']区域内返回一个数字,它会为每个元素创建该语法。

我只是不确定如何分隔字符串,以便[row]生成匹配每一行和在该行内我this用来获取该行内所有列的字符串,但是我又不知道如何编写一个字符串以便它是分开的。

就像,每一行得到这个变量[row]然后每一列得到[column]然后每个元素[element-'+$name+']然后将它们组合起来,以构建一个字符串。

4

1 回答 1

0

虽然这并没有真正提供@adeneo 的演示没有提供的任何东西,但我有一些时间,并认为我会发布这个(尽管作为社区维基,因为我认为它可以承受一些我没有的改进,目前,有时间制作):

var pseudo = $('.row-box').map(function () {
    return '[row] ' + $(this).find('.column').map(function () {
        return '[column] ' + $(this).children().map(function () {
            return '[element-html] ' + $(this).find('input').prop('name') + ' [/element-html]';
        }).get().join(' ') + ' [/column]';
    }).get().join(' ') + ' [/row]';
}).get().join(' ');
console.log(pseudo);

JS 小提琴演示

参考:

于 2013-10-04T23:56:21.303 回答