获取li项目并将其添加到javascript obj

问题描述

我有一个列表元素,我想将列表元素添加到具有键值对的对象中。我希望在phrase={1:First,2:second}中得到类似obj的输出,我曾尝试向obj中添加元素,但其输出为空。

var phrase = {};
var inc = 1;
$("#menu select-li").each(function() {
  phrase[inc] = $(this).text();
  inc++;
});
console.log(phrase)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="tab-pane fade show active">
  <ul class="end-info" id="menu">

    <li value="First" class="select-li First">
      <span class="caret First">&nbsp;</span>First</li>
    <ul class="nested First">
      <li value="First Report">First Report</li>
      <li value="Second Report">Second Report</li>
      <li value="Third Report">Third Report</li>
    </ul>
    <li value="second" class="select-li Second">
      <span class="caret second">&nbsp;</span>second</li>
    <ul class="nested second">
      <li value="First Report">First Report</li>
      <li value="Second Report">Second Report</li>
    </ul>
  </ul>
  <div>

解决方法

"#menu select-li"是什么意思?您的代码中没有名为<select-li>的标签。您真正需要的是:

$("#menu .select-li").each();

此外,使用$(this).attr("value")value属性中获取内容。

index将帮助您获取正确的索引。

您的HTML也无效。正确的是:

var phrase = {};
$("#menu .select-li").each(function(index) {
  phrase[index + 1] = $(this).attr("value");
});
console.log(phrase)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="tab-pane fade show active">
  <ul class="end-info" id="menu">
    <li value="First" class="select-li First">
      <span class="caret First">&nbsp;</span>First
      <ul class="nested First">
        <li value="First Report">First Report</li>
        <li value="Second Report">Second Report</li>
        <li value="Third Report">Third Report</li>
      </ul>
    </li>
    <li value="second" class="select-li Second">
      <span class="caret second">&nbsp;</span>second
      <ul class="nested second">
        <li value="First Report">First Report</li>
        <li value="Second Report">Second Report</li>
      </ul>
    </li>
  </ul>
</div>

,

问题出在您的选择器上,请使用“。”用于课程查询,>用于儿童

此外,使用.attr()获取value属性

var phrase = {};
var inc = 1
$("#menu > li.select-li").each(function() {
  phrase[inc] = $(this).attr('value');
  inc++;
});

console.log(phrase)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>

<head>
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
</head>

<body>
  <div class="tab-pane fade show active">
    <ul class="end-info" id="menu">

      <li value="First" class="select-li First">
        <span class="caret First">&nbsp;</span>First</li>
      <ul class="nested First">
        <li value="First Report">First Report</li>
        <li value="Second Report">Second Report</li>
        <li value="Third Report">Third Report</li>
      </ul>
      <li value="second" class="select-li Second">
        <span class="caret second">&nbsp;</span>second</li>
      <ul class="nested second">
        <li value="First Report">First Report</li>
        <li value="Second Report">Second Report</li>
      </ul>
    </ul>
    <div>
</body>

</html>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...