Как получить все значения из объекта массива с помощью javascript?

#javascript #jquery #arrays

#javascript #jquery ( jquery ) #массивы

Вопрос:

Как получить все значения для объекта массива с помощью javascript?

пример html :

 <tr>
  <td class="my_name">udin</td>
  <td class="my_name">juned</td>
  <td class="my_name">saepudin</td>
</tr>
 

как получить все значение из class = «my_name» с помощью javascript?

мой 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>
 

как этого добиться?

Комментарии:

1. array В вашем примере их нет.

2. Все, что вы хотите, это получить значения выбранной коллекции элементов: api.jquery.com/each и api.jquery.com/html

3. Я думаю, он имел в виду «для», а не «от».

4. перенесите текст в тег DIV. var array_of_name = $(«.my_name div»); Возможно, вы захотите поиграть с Jquery JSON и применить stringify к объекту.

Ответ №1:

Я думаю, вы ищете это:

 $( 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. нет, пожалуйста, используйте .map вместо этого! Вся его цель — преобразовать элементы массива в другой (в данном случае массив элементов в массив их содержимого).

2. @Alnitak да, я когда-то думал о карте .. 🙂 но серьезно .map() , будет полезно!

3. Видите, насколько теперь этот код стал приятнее? 😉 Единственная сложность заключается в том, чтобы не забыть использовать .get для преобразования псевдомассива, возвращаемого jQuery, в реальный массив.

4. @Alnitak ага.. Это выглядит хорошо, а также сокращенное объявление строк и объектов. 🙂 Спасибо. 🙂

Ответ №2:

Вы можете попробовать это:

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

Ответ №3:

С современными браузерами (MSIE> = 9) вы можете сделать это довольно легко в обычном JavaScript:

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

ДЕМОНСТРАЦИЯ

См . также: Array.prototype.map

Комментарии:

1. 1 для кода, который явно игнорирует разбитость MSIE 😉

2. @Alnitak Зависит от того, какая версия сломанности MSIE 😉

3. Конечно, я считаю, что это будет отлично работать на MSIE 9

Ответ №4:

В 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);
 

Ответ №5:

попробуй это :

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