我正在尝试从两个子菜单中的每个子菜单中提取最大值,并将其附加到p
。
$('.submenu').each(function(index, element) {
$('#output')
.append($(".element").map(function() {
return this.text();
})
.get().Math.max();
);
});
<div class='menu'>
<div class='submenu'>
<span class='element' style=''>1</span>
<span class='element' style=''>5</span>
<span class='element' style=''>7</span>
<p id='output'>
</p>
</div>
<div class='submenu'>
<span class='element' style=''>1</span>
<span class='element' style=''>3</span>
<span class='element' style=''>2</span>
<p id='output'>
</p>
</div>
</div>
因此,输出应如下所示:
<div class='menu'>
<div class='submenu'>
<span class='element' style=''>1</span>
<span class='element' style=''>5</span>
<span class='element' style=''>7</span>
<p id='output'>7</p>
</div>
<div class='submenu'>
<span class='element' style=''>1</span>
<span class='element' style=''>3</span>
<span class='element' style=''>2</span>
<p id='output'>3</p>
</div>
</div>
答案 0 :(得分:1)
您的代码中存在多个错误:
.output
text()
是jQuery方法,所以用jQuery包装this
。Math.max
的使用在代码中的格式不正确,请与Function#apply
一起使用以将元素数组作为参数传递。id
应该是唯一的,因此请使用class
代替输出元素,尽管在选择器中指定context。
$('.submenu').each(function(index, element) {
$('.output', this).append(Math.max.apply(Math, $(".element", this).map(function() {
return $(this).text();
}).get()));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='menu'>
<div class='submenu'>
<span class='element' style=''>1</span>
<span class='element' style=''>5</span>
<span class='element' style=''>7</span>
<p class='output'>
</p>
</div>
<div class='submenu'>
<span class='element' style=''>1</span>
<span class='element' style=''>3</span>
<span class='element' style=''>2</span>
<p class='output'>
</p>
</div>
</div>
&#13;