我有一个HTML列表。我想循环遍历每个li并将文本存储在一个数组中。我的最后一个数组应该如下:
[{
text: ["country", "city", "poste code", "address", "name", "surname", "email", "tel number"],
textwithBrackets: ["[country]", "[city]", "[poste code]", "[address]", "[name]", "[surname]", "[email]", "[tel number]"]
}]我所做的是:
使用li 1循环遍历每个map并将文本返回给array 1
2-执行与第一步相同的步骤,但将带有括号的每个文本返回给array 2
3-创建最终的array并按键/值推送array 1和array 2
下面是我的密码。这是可行的,但是否有更好的解决方案使用jQuery,我不知道?例如,我如何在一个步骤中完成这两个映射,并将合并直接分配到最终数组中?
非常感谢你的建议。
var liText = $('ul > li').map(function(){ return $(this).text(); }).get();
var liTextwithBrackets = $('ul > li').map(function(){ return '[' + $(this).text() + ']'; }).get();
var result = [];
result.push({
text: liText,
textwithBrackets: liTextwithBrackets });
console.log(result);<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>country</li>
<li>city</li>
<li>poste code</li>
<li>address</li>
<li>name</li>
<li>surname</li>
<li>email</li>
<li>tel number</li>
</ul>
发布于 2022-02-02 14:20:58
请试试这个。这比你的方法更有表现力。
var liText = $('ul > li').map(function() {return $(this).text();}).get();
var result = [{
text: liText,
textwithBrackets: liText.map(val => '[' + val + ']')
}];<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>country</li>
<li>city</li>
<li>poste code</li>
<li>address</li>
<li>name</li>
<li>surname</li>
<li>email</li>
<li>tel number</li>
</ul>
https://stackoverflow.com/questions/70956992
复制相似问题