Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中的特定位置插入百分比_Javascript_Html_List - Fatal编程技术网

如何在Javascript中的特定位置插入百分比

如何在Javascript中的特定位置插入百分比,javascript,html,list,Javascript,Html,List,我试图用insertbefore更改一些Javascript代码创建的位置,但我不知道如何在代码中应用它 My Javascript生成随机数,并创建一个将这些数作为其子项插入的位置: <script type="text/javascript"> var orderedList = document.getElementById("my_list"); var itemLength = orderedList.children.length - 1; // CALCULA

我试图用insertbefore更改一些Javascript代码创建的位置,但我不知道如何在代码中应用它

My Javascript生成随机数,并创建一个将这些数作为其子项插入的位置:

<script type="text/javascript">

  var orderedList = document.getElementById("my_list");
  var itemLength = orderedList.children.length - 1; // CALCULATE LENGTH OF THE ITEM LIST

  function getRandomInt(min, max) {
      min = Math.ceil(min);
      max = Math.floor(max);
      return Math.floor(Math.random() * (max - min + 1)) + min;
  }

  // get a default 100 into the array
  var arrayOfNumbers = [100],
      listItem = document.querySelector("list_item");

  // get itemLength random numbers
  for (let i = 0; i < itemLength; i++) {
    arrayOfNumbers.push(getRandomInt(30, 98))
  }

  // sort the array of random numbers
  arrayOfNumbers.sort(function(a, b) {
    return b - a
  })

  // now do the lopping and creating elements
  for (let i = 0; i < arrayOfNumbers.length; i++) {
    let randomIntContainer = document.createElement('div');
    randomIntContainer.textContent = arrayOfNumbers[i] + "%";
    randomIntContainer.setAttribute('class', 'number');
    for (const matchingOrder of orderedList.querySelectorAll('.matching_score')) { matchingOrder.appendChild(randomIntContainer.cloneNode(true))}
  }

</script>
我怎样才能做到这一点?

而不是

for (let i = 0; i < arrayOfNumbers.length; i++) {
    let randomIntContainer = document.createElement('div');
    randomIntContainer.textContent = arrayOfNumbers[i] + "%";
    randomIntContainer.setAttribute('class', 'number');
    for (const matchingOrder of orderedList.querySelectorAll('.matching_score')) { matchingOrder.appendChild(randomIntContainer.cloneNode(true))}
}
证明其有效性的示例:

设ArrayOfNumber=[2,5,6,8]; 对于orderedList.querySelectorAll.matching_score.条目的常量[i,matchingOrder]{ 让randomIntContainer=document.createElement'div'; randomIntContainer.textContent=ArrayOfNumber[i]+%; randomIntContainer.className='number'; 匹配Order.appendChildrandomIntContainer; } 福

酒吧

巴兹

福巴


对于任何给定的idvalue,每页不能有多个元素。首先解决这个问题,改用类。没有人希望修复无效HTML上的DOM内容。Node.insertBefore方法将在引用节点之前插入一个节点作为指定父节点的子节点。示例来源:您找到了正确的方法,是否尝试过使用它?如果是这样的话,请告诉我们您尝试了什么,我们可以帮助您理解为什么它不起作用。在此之前,Insert没有任何用处。对于orderedList.querySelectorAll.matching{matchingOrder.appendChildrandomIntContainer.cloneNodetrue}的常量matchingOrder,如果它显示每个项目中的所有数字,则意味着每次循环创建项目时,也会输出所有数字。如果您只想在每个项目中输出一个数字,那么您需要找到一种方法,根据当前输出的项目确定您需要的特定数字,并仅选择该数字作为输出。如何将每个数字与每个项目相关联?我在控制台中添加以下代码时得到:Uncaught TypeError:matchingOrder.appendChild不是哪个浏览器中的函数?我使用Google ChromeMy bad,它必须是[I,matchingOrder],而不是[matchingOrder,I]。请重试。它现在可以工作了,非常感谢!我真的很感激!
<div>
   {% if  page_obj.object_list %}
       <ol class="row top20" id="my_list">

          {% for result in page_obj.object_list %}

          <li class="list_item">
              <div class="showcase col-sm-6 col-md-4">

     <!--  Display the Js function in the written div below --> 

               <div class="matching_score">
                    <!-- Here -->
               </div>

               <a href="{{ result.object.get_absolute_url }}">
                      <h3>{{result.object.title}}</h3>
                      <h5>{{ result.object.destination }}</h5>
                      <img src="{{ result.object.image }}" class="img-responsive">
               </a>
               </div>
          </li>

           {% endfor %}

       </ol>
</div>
    {% endif %}
for (let i = 0; i < arrayOfNumbers.length; i++) {
    let randomIntContainer = document.createElement('div');
    randomIntContainer.textContent = arrayOfNumbers[i] + "%";
    randomIntContainer.setAttribute('class', 'number');
    for (const matchingOrder of orderedList.querySelectorAll('.matching_score')) { matchingOrder.appendChild(randomIntContainer.cloneNode(true))}
}
for (const [i, matchingOrder] of orderedList.querySelectorAll('.matching_score').entries()) {
    let randomIntContainer = document.createElement('div');
    randomIntContainer.textContent = arrayOfNumbers[i] + "%";
    randomIntContainer.className = 'number';
    matchingOrder.appendChild(randomIntContainer);
}