如何附加文本值数组的最大值?

时间:2017-01-23 16:39:35

标签: jquery

我正在尝试从两个子菜单中的每个子菜单中提取最大值,并将其附加到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>

1 个答案:

答案 0 :(得分:1)

您的代码中存在多个错误:

  1. 通过指定context as an argument
  2. 在当前上下文中获取.output
  3. text()是jQuery方法,所以用jQuery包装this
  4. Math.max的使用在代码中的格式不正确,请与Function#apply一起使用以将元素数组作为参数传递。
  5. id应该是唯一的,因此请使用class代替输出元素,尽管在选择器中指定context
  6. &#13;
    &#13;
    $('.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;
    &#13;
    &#13;