第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

獲取HTML表格標(biāo)簽<table><tbody><th><tr><td>之間的所有文本并生成json

獲取HTML表格標(biāo)簽<table><tbody><th><tr><td>之間的所有文本并生成json

慕標(biāo)琳琳 2023-10-30 20:23:49
我有下面的 HTML 表,我想獲取標(biāo)簽之間的數(shù)據(jù),這些數(shù)據(jù)有時(shí)是單行,有時(shí)是多行。<table>     <tbody>     <tr>        <th>Role</th>        <th>Device Name</th>        <th>IP Address </th>        <th>MAC Address </th>        <th>Registered </th>        <th>Subscribers </th>        <th>Events </th>     </tr>     <tr>        <td>    CM   </td>        <td>    -   </td>        <td>192.168.7.110&nbsp;</td>        <td>506182488323&nbsp;</td>        <td>XYZ        </td>        <td>&nbsp;Shkdsd30ec1        </td>        <td>Events        </td>     </tr>     </tbody></table>我想使用此表生成 JSON,如下面的代碼使用 javascript{  "Role" : "CM",  "Device Name" : "-",  "IP Address" : "192.168.7.110",  "MAC Address" : "506182488323",  "Registered" : "XYZ",  "Subscribers" : "Shkdsd30ec1",  "Events" : "Events"}如果有更多帶有密鑰的標(biāo)簽,則應(yīng)該遞增,例如 Role->Role1->Role2 等。
查看完整描述

2 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

假設(shè)您的 HTML 正文中只有此表...


let t = document.getElementsByTagName("table");

let trs = t[0].getElementsByTagName("tr");

let oKeys = [], oVals = [];

let ths = trs[0].getElementsByTagName("th");

let tds = trs[1].getElementsByTagName("td");

ths = Array.from(ths);

tds = Array.from(tds);

ths.map( item => {

  oKeys.push(item.innerText);

  return ;

});

tds.map( item => {

  oVals.push(item.innerText);

  return ;

});

console.log("O keys ", oKeys);

console.log("oVals ", oVals);

let newObj = {};

oKeys.map( (key, i) => {

  let val = oVals[i];

  Object.assign(newObj, {[key] : val })

});

console.log(newObj);

<table id="myTable">

     <tbody>

     <tr>

        <th>Role</th>

        <th>Device Name</th>

        <th>IP Address </th>

        <th>MAC Address </th>

        <th>Registered </th>

        <th>Subscribers </th>

        <th>Events </th>

     </tr>

     <tr>

        <td>

    CM

   </td>

        <td>

    -

   </td>

        <td>192.168.7.110&nbsp;</td>

        <td>506182488323&nbsp;</td>

        <td>XYZ

        </td>

        <td>&nbsp;Shkdsd30ec1

        </td>

        <td>Events

        </td>

     </tr>

     </tbody>

</table>

newObj 保存您想要的數(shù)據(jù)。您可以在上述邏輯中添加更多內(nèi)容。



查看完整回答
反對(duì) 回復(fù) 2023-10-30
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

使用 jQuery 進(jìn)行 dom 選擇,這段 JS 代碼應(yīng)該可以工作



var myRows = [];

var headersText = [];

var $headers = $("th");


// Loop through grabbing everything

var $rows = $("tbody tr").each(function(index) {

? $cells = $(this).find("td");

? myRows[index] = {};


? $cells.each(function(cellIndex) {

? ? // Set the header text

? ? if(headersText[cellIndex] === undefined) {

? ? ? headersText[cellIndex] = $($headers[cellIndex]).text();

? ? }

? ? // Update the row object with the header/cell combo

? ? myRows[index][headersText[cellIndex]] = $(this).text();

? });

});


// Let's put this in the object like you want and convert to JSON (Note: jQuery will also do this for you on the Ajax request)

var myObj = {

? ? "myrows": myRows

};

console.log(myRows);


查看完整回答
反對(duì) 回復(fù) 2023-10-30
  • 2 回答
  • 0 關(guān)注
  • 198 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)