我正在尝试创建一个类似于此
的字符串[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(" ");
});
});
});
这显然不起作用,因为它在['+row+']
和['+column+']
区域内返回一个数字1,它将为每个元素创建该语法..
我只是不确定如何分隔字符串,以便生成[row]
以匹配每一行,并在该行内使用this
来获取该行内的所有列,但我又是不知道如何写一个字符串,以便它是分开的。
类似的是,每一行都会获得此变量[row]
,然后每列获得[column]
,然后每个元素[element-'+$name+']
然后合并它们,以构建一个字符串。
答案 0 :(得分: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);
参考文献:
children()
。find()
。get()
。map()
。prop()
。