#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);
})