我有一个简单的问题。循环遍历多个div和这些div中输入/ textarea的最有效方法。
例如,我有以下HTML
<div class="formatInput">
<h4>Section Header</h4>
<input type="text" class="formatSectionHeader" width="100%"/>
<h4>Section Content</h4>
<textarea class="formatSectionContent"></textarea>
<p style="float:right;"><span class="removeFormatInput">Remove Section</span></p>
</div>
我创建了一个按钮,允许用户在需要时添加更多.formatInput div。
最后,我有一个刷新按钮,我想循环遍历每个div并按顺序收集输入和textarea控件的值。
答案 0 :(得分:1)
如果你打电话给$(".formatInput")
,它会给你所有带有classInput类的div
个。使用.each()
遍历它。
$(".formatInput").each(function(){
// $(this) here will be the current div in the loop.
});
答案 1 :(得分:1)
循环div,然后形成元素:
$('.formatInput').each(function(index) {
$(':input', this).each(function(index2)) {
alert(index + '-' + index2 ': ' + $(this).value());
});
});
答案 2 :(得分:1)
至少值得一提的是,可能正在寻找serialize,尽管我无法肯定地说。我这样说的原因是因为这个措辞。
循环遍历每个div并按顺序收集输入和textarea控件的值
就像我说的那样,也许你真的只是在寻找几个each
电话。
答案 3 :(得分:0)
您可以使用each
循环遍历div中的所有字段,如下所示:
$('.formatInput :input').each(function() {
alert($(this).value());
});
:input
过滤器选择将选择所有输入(在您的情况下为输入类型text和textarea),这些输入位于具有类formatInput
的div中,然后each
用于循环它们
答案 4 :(得分:0)
以下将创建两个单独的数组。真的取决于你将如何处理数据,以及如何格式化它。 jAndy正好击中头部,但我还不能投票。
var header = new Array();
var content = new Array();
$(".formatInput").each(function(){
iDex = $(this).index();
header[iDex] = $(this).children(".formatSectionHeader").val();
content[iDex] = $(this).children(".formatSectionContent").val();
});