【问题标题】:Dynamically add object value to div inside <p> tag将对象值动态添加到 <p> 标记内的 div
【发布时间】:2016-07-08 23:39:01
【问题描述】:

单击按钮时,我想将 p 标记添加到现有 div 中,其中包含对象属性名称的值。

  var foodLoads = {
    orange: 6.7,
    apple: 5.6,
    banana: 12.7,
    grapes: 16.3,
    peach: 2.7,
    pear: 6.5,
    mango: 16.1,
    blueberries: 9.3,
    grapefruit: 1.7,
    strawberry: 3.5,
    tangerine: 3.1,
    watermelon: 8,
    duck: 0,
    beef: 0,
    chicken: 0,
    ham: 0,
    turkey: 0,
    elk: 0,
    pork: 0,
    fish: 0,
    eggs: 0,
    lamb: 0,
    applejuice: 11.8,
    cranberryjuice: 23.3,
    orangejuice: 14.4,
    carrotjuice: 8.6,
    lemonade: 24.3,
    hotchocolatemix: 10.2,
    tomatojuice: 3.5,
    chocolatemilk: 13.3,
    almondmilk: 0.02,
    soymilk: 4,
    wholewheatbread: 6.1,
    whitebread: 10.7,
    bagel: 30,
    waffle: 13.8,
    pancake: 5.3,
    croissant: 12.2,
    muffin: 28.8,
    englishmuffin: 21.3,
    doughnut: 15.2,
    oatmeal: 12.6,
    quinoa: 20.4,
    wholegrainbread: 7.1 
  }

当用户选中复选框时会动态创建 div(这是在他们单击按钮之前)。

  $('input').on('ifChecked', function(event) {       
    var liText = $(this).parent().parent().text();
    var wrappedUp = $('<div class="active"><li>' + liText + '</li><select class="serving-size"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select></div>');
    $('.food-list').append(wrappedUp);
    $(wrappedUp).addClass('' + liText + '');        
})

这是我正在谈论的 div 的示例

<ul class="food-list">

    <div class="active Mango">
                 <li>Mango</li>
          <select class="serving-size"><option value="1">1</option><optionvalue="2">2</option><option value="3">3</option><option value="4">4</option>
          </select>
    </div>
</ul>

所以,基本上,在单击按钮时,我希望能够使用类(即 Mango)将其与 foodLoads 对象中具有相同名称(mango)的属性相匹配,将该属性的值放在 ap 标签中, 并将其添加到具有匹配类 (Mango) 的 div 中。

这是我尝试使用的 jQuery。由于我是 jQuery 新手,我确信语法都搞砸了。

  $('.submit-items').click(function() {
    $.each( foodLoads, function( key, value ) {
      if ($('.active:contains(' + key + ')')) {
        $(this).append('<p>' + key + '</li>');
      }
})

     })

有什么想法吗?在此先感谢:)

【问题讨论】:

    标签: javascript jquery html object


    【解决方案1】:

    这是一个更简单的方法。

    • active 类中找到li 的文本。
    • 查看它的值。
    • 附加p

    喜欢:-

    $('.submit-items').click(function() {
       var type = $('.food-list .active li').text();
       var value = foodLoads[type.toLowerCase()];
       $('.' + type).append('<p>' + value + '</p>');
    });
    

    演示

    var foodLoads = {
      orange: 6.7,
      apple: 5.6,
      banana: 12.7,
      grapes: 16.3,
      peach: 2.7,
      pear: 6.5,
      mango: 16.1,
      blueberries: 9.3,
      grapefruit: 1.7,
      strawberry: 3.5,
      tangerine: 3.1,
      watermelon: 8,
      duck: 0,
      beef: 0,
      chicken: 0,
      ham: 0,
      turkey: 0,
      elk: 0,
      pork: 0,
      fish: 0,
      eggs: 0,
      lamb: 0,
      applejuice: 11.8,
      cranberryjuice: 23.3,
      orangejuice: 14.4,
      carrotjuice: 8.6,
      lemonade: 24.3,
      hotchocolatemix: 10.2,
      tomatojuice: 3.5,
      chocolatemilk: 13.3,
      almondmilk: 0.02,
      soymilk: 4,
      wholewheatbread: 6.1,
      whitebread: 10.7,
      bagel: 30,
      waffle: 13.8,
      pancake: 5.3,
      croissant: 12.2,
      muffin: 28.8,
      englishmuffin: 21.3,
      doughnut: 15.2,
      oatmeal: 12.6,
      quinoa: 20.4,
      wholegrainbread: 7.1
    };
    
    $('.submit-items').click(function() {
      var type = $('.food-list .active li').text();
      var value = foodLoads[type.toLowerCase()];
      $('.' + type).append('<p>' + value + '</p>');
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <ul class="food-list">
      <div class="active Mango">
        <li>Mango</li>
        <select class="serving-size">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
        </select>
      </div>
    </ul>
    
    <button class="submit-items">submit</button>

    【讨论】:

    • 这应该可以工作,但是每次我运行这个我都会得到这个错误:jquery.min.js:2 Uncaught Error: Syntax error, unrecognized expression: 。芒果
    • 我不确定这是否是因为 toLowerCase() 函数不起作用,但我不明白这是怎么回事。该功能看起来不错...
    • .Mango 之间有一个空格?
    • 不应该,我只是将您的确切代码粘贴进去。我会继续努力弄清楚,谢谢。
    猜你喜欢
    • 2018-06-30
    • 1970-01-01
    • 2022-06-29
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2013-12-20
    • 1970-01-01
    相关资源
    最近更新 更多