这是我的html:
<!doctype html>
<html lang="en">
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
</head>
<body>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</body>
</html>
我只是想得到李的文字:
$('li').map((i, x) => $(x).text())
// (3) ["one", "two", "three", prevObject: o.fn.init(3), context: document]
我觉得应该有一个简单的方法来做到这一点,而不是在最后得到所有额外的垃圾。
编辑:有关li标签的html已修复。问题不在于糟糕的HTML。
答案 0 :(得分:2)
最后必须使用get()
,否则你最终得到一个jQuery对象,因为jQuery的$.fn.map
用于映射元素,而不是文本。
var arr = $('li').map((i, x) => $(x).text()).get();
console.log(arr)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
答案 1 :(得分:0)
这是因为没有使用</li>
let data = $('li').map((i, x) => $(x).text()).get();
console.log(data);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<body>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</body>
</html>
&#13;