【发布时间】:2026-02-23 15:45:01
【问题描述】:
我有一个内容为 [a,b,c] 的数组,我需要将它放在 .html() 中
我原来的地方是它的 3 个孩子 当我直接说的时候——这样:
$('#listProducts div ul li').html(newElements); (not esactly this code, but I short it)
发生了什么(像这样返回 [abc]):
<div id=listProducts>
<ul>
<li>A,B,C</li>
<li>A,B,C</li>
<li>A,B,C</li>
</ul></div>
我想要的结果:
<div id=listProducts>
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul></div>
我试过了:
$('#listProducts ul li ul li div').html(function(newElements){
for(let i = 0; i < newElements.length; i++){
newElements[i];
}
});
但我研究了 .html() 中的函数,它似乎只接受索引参数。
我想到了类似的东西
$().html(newElements[0],newElements[1],newElements[2]) or
separe in 3 variables $().html(element1,newElements2,newElements3) // but i guess its not possible with .html()
有没有办法做到这一点?
Ps:我无法更改 HTML,也无法直接发送 <li> + newElements[i]; 之类的内容,因为它与每个 div、ul 等唯一的后端参数相连。
这是我在 SO 的第一个问题,英语不是我的第一语言。所以如果有任何错误,请给我建议,我会改变。非常感谢!!
编辑1:
测试:
.html(function(i) {
return arr[i];
});
完整代码:
const arr = $('#listProducts ul li ul li div a').get().sort(function(a, b) {
return a.getAttribute('href') > b.getAttribute('href') ? 1 : -1;
}).map(function(el) {
return $(el).clone(true)[0];
});
$('#listProducts ul li ul li div').html(function(i) {
return arr[i];
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<body>
<div id="listProducts" class="listagem borda-alpha ">
<ul data-produtos-linha="3">
<li class="listagem-linha ">
<ul class="">
<li class="span4">
<div class="listagem-item">
<a href="https://test.com/2-test" class="produto-sobrepor" title="TEST 2">2TH ELEMENT</a>
<div class="another 1">another div 1</div>
<div class="another 2">another div 2</div>
</div>
</li>
<li class="span4">
<div class="listagem-item">
<a href="https://test.com/3-test" class="produto-sobrepor" title="TEST 3">3RD ELEMENT</a>
<div class="another 1">another div 1</div>
<div class="another 2">another div 2</div>
</div>
</li>
<li class="span4">
<div class="listagem-item">
<a href="https://test.com/1-test" class="produto-sobrepor" title="TEST 1">1st ELEMENT</a>
<div class="another 1">another div 1</div>
<div class="another 2">another div 2</div>
</div>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>
预期:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<body>
<div id="listProducts" class="listagem borda-alpha ">
<ul data-produtos-linha="3">
<li class="listagem-linha ">
<ul class="">
<li class="span4">
<div class="listagem-item">
<a href="https://test.com/1-test" class="produto-sobrepor" title="TEST 1">1st ELEMENT</a>
<div class="another 1">another div 1</div>
<div class="another 2">another div 2</div>
</div>
</li>
<li class="span4">
<div class="listagem-item">
<a href="https://test.com/2-test" class="produto-sobrepor" title="TEST 2">2ND ELEMENT</a>
<div class="another 1">another div 1</div>
<div class="another 2">another div 2</div>
</div>
</li>
<li class="span4">
<div class="listagem-item">
<a href="https://test.com/3-test" class="produto-sobrepor" title="TEST 3">3RD ELEMENT</a>
<div class="another 1">another div 1</div>
<div class="another 2">another div 2</div>
</div>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>
添加:
- .get().sort 是按照 URL 的字母顺序对结果进行排序,并且工作正常。
- “another div 1”和“another div 2”与other li上的“another div 1”和“another div 2”不同。
- 不止 3 项。
【问题讨论】:
标签: javascript jquery arrays dom