使用jQuery将字符串收集到Array中

时间:2016-09-16 18:26:17

标签: jquery arrays

我有一些表格数据,我需要将它们放入一个数组中,这样我就可以在代码中的其他位置查找匹配项。所以我需要转换它:

<td> Name 1 </td>
<td> Name 2 </td>
<td> Name 3 </td>

成:

['Name 1', 'Name 2', 'Name 3']

这不起作用:

 $('td').text().toArray();

我真的希望它会:)我需要获取输入的文本并将其与现有的<td>进行比较以确保它是唯一的,所以如果有更好的方法来解决它,我我很乐意听到它。我知道我可以创建一个空数组,创建一个循环或使用$ .each()和push()每个.text()到数组,但必须有一个更简洁的方法。

2 个答案:

答案 0 :(得分:2)

您可以使用如下的jQuery map()方法。

&#13;
&#13;
var arr = $('td').map(function (){
    return $(this).text().trim();
}).get();

console.log(arr);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tr>
        <td> Name 1 </td>
        <td> Name 2 </td>
        <td> Name 3 </td>
    </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您需要遍历元素并获取每个文本。在普通的js你可以这样做:

&#13;
&#13;
var result = Array.prototype.map.call(document.getElementsByTagName("td"), function(el) {
        return el.innerHTML.trim();
    });

    console.log(result)
&#13;
<table>
    <tr>
        <td> Name 1 </td>
        <td> Name 2 </td>
        <td> Name 3 </td>
    </tr>
</table>
&#13;
&#13;
&#13;