我有一个类似html的结构[列表中的列表]:
<ul class="outer" >
<li><input type="text" class="outer_name" value="outer_name"></li>
<ol class="inner">
<li><input type="text" value="inner1"><input type="checkbox"></li>
<li><input type="text" value="inner2"><input type="checkbox"></li>
<li><input type="text" value="inner3"><input type="checkbox"></li>
</ol>
</ul>
我在页面上翻了多个这些。 我试图指定对于每个“外部”元素,我想提醒()如下:
"outer_name" + "inner1:checked" + "inner2:unchecked" + "inner3:checked"
我一直在使用嵌入式.each函数,但我似乎无法确定它。
任何帮助表示赞赏....
答案 0 :(得分:2)
您的HTML无效。 ul
个元素不能直接包含ol
个元素。 only valid child elements of ul
是li
个元素。
如果您修复它:
<ul class="outer" >
<li><input type="text" class="outer_name" value="outer_name">
<ol class="inner">
<li><input type="text" value="inner1"><input type="checkbox"></li>
<li><input type="text" value="inner2"><input type="checkbox"></li>
<li><input type="text" value="inner3"><input type="checkbox"></li>
</ol>
</li>
</ul>
......然后基本上:
$(".outer > li").each(function() {
$(this).find(".inner > li").each(function() {
});
});
答案 1 :(得分:1)
我对此进行了测试并且有效:
var items = $(".outer .inner li");
var output = "outer_name - ";
for (var i = 0; i < items.length; i++) {
var elem = $("input[type=checkbox]", items[i]);
if( $(elem).is(":checked") ) output += "" + $(elem).prev().val() + ":checked + ";
else output += "" + $(elem).prev().val() + ":unchecked + ";
}
alert( output );
答案 2 :(得分:1)
这将为您提供一个良好的开端并帮助您了解如何在另一个中使用$.each
编辑:小提琴链接不正确
演示:http://jsfiddle.net/fMcSz/2/
$('.outer').each(function() {
var alertMsg = [$(this).find('.outer_name').val()];
$(this).find('input:checkbox').each(function() {
var checkText = ' ' + $(this).prev().val() + ': ';
checkText += (this.checked) ? 'checked' : 'unchecked';
alertMsg .push( checkText);
});
alert(alertMsg.join(', '))
});