2015-04-11 4 views
-1

Привет У меня есть следующая таблица:Включите HTML таблицу в массив с яваскрипта

<tbody> 
 
    <tr class="odd first-child"> 
 
     <td class="first-child account_name">Label 1</td> 
 
     <td class="last-child balance">Amount 1</td> 
 
    </tr> 
 
    <tr class="even"> 
 
     <td class="first-child account_name">Label 2</td> 
 
     <td class="last-child balance">Amount 2</td> 
 
    </tr> 
 
    <tr class="odd"> 
 
     <td class="first-child account_name">Label 3</td> 
 
     <td class="last-child balance">Amount 3</td> 
 
    </tr> 
 
    <tr class="even"> 
 
     <td class="first-child account_name">Label 4</td> 
 
     <td class="last-child balance">Amount 4</td> 
 
    </tr> 
 
    <tr class="odd"> 
 
     <td class="first-child account_name">Label 5</td> 
 
     <td class="last-child balance">Amount 5</td> 
 
    </tr> 
 
</tbody>

мне нужно, чтобы превратить его в массив с помощью JavaScript, так что «метка 1» является ключевым для значения «Сумма 1», «Метка 2» является ключом для значения «Сумма 2» и т. д.

Как я могу это сделать?

Спасибо!

+0

Вы что-то пробовали? – Nit

+0

Я пытался использовать этот пост в качестве ссылки, но безрезультатно: http://www.fourfront.us/blog/store-html-table-data-to-javascript-array – user3745602

+0

Он просто возвращает [объект, объект] 6 times – user3745602

ответ

0

Все, что вам нужно сделать, это просто перебрать узлы.

var c = document.querySelectorAll('#tgt td'); 
 
var d = {}; 
 
for (var i = 0; i < c.length; i += 2) { 
 
    d[c[i].innerHTML] = c[i + 1].innerHTML; 
 
} 
 
console.log(d);
<table id="tgt"> 
 
    <tbody> 
 
    <tr class="odd first-child"> 
 
     <td class="first-child account_name">Label 1</td> 
 
     <td class="last-child balance">Amount 1</td> 
 
    </tr> 
 
    <tr class="even"> 
 
     <td class="first-child account_name">Label 2</td> 
 
     <td class="last-child balance">Amount 2</td> 
 
    </tr> 
 
    <tr class="odd"> 
 
     <td class="first-child account_name">Label 3</td> 
 
     <td class="last-child balance">Amount 3</td> 
 
    </tr> 
 
    <tr class="even"> 
 
     <td class="first-child account_name">Label 4</td> 
 
     <td class="last-child balance">Amount 4</td> 
 
    </tr> 
 
    <tr class="odd"> 
 
     <td class="first-child account_name">Label 5</td> 
 
     <td class="last-child balance">Amount 5</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

0

Вы могли бы попытаться имитировать пары ключ/значение, используя следующий JavaScript:

var trElements = document.getElementsByTagName('tr'); 
var keyValue = []; 

for(var i = 0; i < trElements.length; i++) 
{ 
    var tdElements = trElements[i].getElementsByTagName('td'); 
    keyValue.push({"key":tdElements[0].innerHTML,"value":tdElements[1].innerHTML}); 
} 

со следующими HTML:

<body> 
    <table> 
     <tr> 
      <td>Key1</td> 
      <td>Value1</td> 
     </tr> 
     <tr> 
      <td>Key2</td> 
      <td>Value2</td> 
     </tr> 
    </table> 
</body> 

Таким образом, вы можете получить значение вашего ключа или значения путем выбора keyValue [i] .k ey или keyValue [i] .value. Я думаю, что это самый простой способ. Я не думаю, что js поддерживает пары ключ-значение по умолчанию.

Смежные вопросы