如何使用JavaScript获取数组对象中的所有值?

4
如何使用javascript将所有值获取到数组对象中?
示例html:
<tr>
  <td class="my_name">udin</td>
  <td class="my_name">juned</td>
  <td class="my_name">saepudin</td>
</tr>

如何使用Javascript获取class =“my_name”中的所有值?
我的javascript代码:
<script>
  $(document).ready(function() {
    var array_of_name = $(".my_name");
    // how to get all value from my object array ?
    // i want get result like this : ["udin", "juned", "saepudin"] ?
  });
</script>

如何实现它?

你的示例中没有任何 array - emerson.marini
你想要的是获取所选元素集合的值:http://api.jquery.com/each/ 和 http://api.jquery.com/html/ - emerson.marini
我认为他的意思是“要”而不是“从”。 - Alex Char
将文本包装在DIV标签中。var array_of_name = $(".my_name div"); 您可能想要尝试使用Jquery JSON,并对对象应用stringify函数。 - Dmitry
5个回答

6
我想您需要这个:

我认为您正在寻找以下内容:

$( document ).ready(function() {
     var array_of_name = [];
     $(".my_name").each(function(){
         array_of_name.push($(this).text());
     }); 
     console.log(array_of_name); // will get result like this : ["udin", "juned", "saepudin"] ?

  });

根据评论,您也可以使用.map()

var array_of_name= $(".my_name").map(function(){
        return $(this).text();
 }).get();

 console.log(names);

文档

演示

使用 .map() 的演示


1
不要使用.forEach,请使用.map!它的整个目的是将数组元素变异为另一个数组(在这种情况下,是元素数组到其内容数组)。 - Alnitak
@Alnitak 嗯,我曾经考虑过使用 map().. :) 但说真的,map() 函数非常有用! - Dhaval Marthak
现在看起来这段代码好多了,是吧?;-)唯一的复杂之处就是记得使用“.get”将jQuery返回的伪数组转换为真正的数组。 - Alnitak
@Alnitak 嗯,看起来不错,而且减少了行和对象声明。 :) 谢谢。 :) - Dhaval Marthak

4
您可以尝试这样做:
$(function(){
    var names = $(".my_name").map(function(){
        return $(this).text();
    }).get();
    console.log(names);
})

2

使用现代浏览器(MSIE >= 9),您可以使用纯JavaScript轻松完成此操作:

var names = [].map.call(document.getElementsByClassName('my_name'), function(el) {
    return el.textContent;
});

演示

另请参阅:Array.prototype.map


+1 鼓励那些毫不留情地忽略 MSIE 的缺陷的代码;-) - Alnitak
@Alnitak 取决于 MSIE 版本的破损程度;-) - Ja͢ck
我相信这在MSIE 9+上会完美运行。 - Alnitak

1
在JavaScript中,您可以像这样实现它:

Javascript中,您可以通过以下方式实现:

 var array_of_name = [];
 var elements_arr = document.getElementsByClassName("my_name");
 for (var i in elements_arr) {
     array_of_name.push(elements_arr[i].innerHTML);
 }
 console.log(array_of_name);

0

试试这个:

$(function(){
    var data = [];
    $(".my_name").text(function(key,value){
       data.push(value);
    });
 console.log(data);
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接