嘿,我有一些包含数据的表,可以在td上使用它。所以更像我有这样的东西(在下面的图像中显示)
我的元素
我想获取所有位置名称并将其放入数组,以便我可以使用该数组,我尝试使用此代码并获得了undefined
script.js
/** Checking if There positions name */
function checkPositions(){
let positions = document.getElementsByClassName('check-positions').innerHTML;
let array = [];
array.push(positions);
console.log(array);
}
然后我如何获得该值?
您遇到的问题是document.getElementsByClassName('check-positions')
返回不具有HTMLCollection
属性的innerHTML
。
您需要做的是将HTMLCollection
转换为数组,然后读取数组中每个项目的innerHTML
属性。请参见以下示例:
const elements = document.getElementsByClassName('check-positions');
const positions = Array.from(elements).map(element => element.innerHTML);
console.log(positions);
<div class="check-positions">1</div>
<div class="check-positions">2</div>
<div class="check-positions">3</div>
像这样使用
let positions = document.getElementsByClassName('check-positions')[0].innerHTML;
它没有显示任何内容,因为您需要对整个数组进行整形并在不使用索引的情况下进行推送
代码
function checkPositions(){
all_ele = document.getElementsByClassName('check-positions')
length = all_ele.length
let array = [];
for( let i=0;i<length;i++)
{
let positions = document.getElementsByClassName('check-positions')[i].innerHTML;
array.push(positions);
}
console.log(array);
您可以使用jquery代码执行此操作。
var arr = [];
$("#tablePlacement tr").each(function() {
var name = $(this).children('td.check-positions').text();
arr.push(name);
});
您应该使用
let positions = document.getElementsByClassName('check-positions').innerText;