Как мне получить данные в таблице / td

Я использую приведенный ниже код для получения значения ячейки.

alert(document.getElementById("table-body-positions").rows[0].cells[3].innerHTML);

Значение Td составляет

<td><a data-action = "details"><span><span class = "">2019/01/04 13:36:19</span></span></a></td>

Получаю вот такой результат.

<a data-action = "details"><span><span class = "">2019/01/04 13:36:19</span></span></a>

Но я просто хочу получить 2019/01/04 13:36:19

Такая же проблема здесь для этого тд.

<td><a data-action = "update-limit" data-filter = "limit">1.18809 (505.4)<br>$808.64</a></td>

ну, вы читаете innerHTML, когда хотите прочитать текст.

epascarello 04.01.2019 18:03
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
54
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Было бы проще, если бы вы могли добавить уникальный идентификатор или имя класса к интересующему вас диапазону.

Используйте innerText, а не innerHTML.

console.info(document.getElementsByTagName('td')[0].getElementsByTagName('span')[1].innerText)
<table>
<td><a data-action = "details"><span><span class = "">2019/01/04 13:36:19</span></span></a></td>
</table>
Ответ принят как подходящий

Вместо InnerHTML вы можете использовать innerText

alert(document.getElementById("table-body-positions").rows[0].cells[1].innerText);

Найдите каждый td по имени тега, а затем рекурсивно проверяйте его содержимое, пока не будет найден nodeTypeTEXT_NODE.

Это работает лучше всего, если у вас нет фиксированной HTML-структуры в ваших tds, как это могло бы выглядеть.

Никаких идентификаторов и классов не требуется.

function recursiveSearch(elem){
   
   if (elem.nodeType === Node.TEXT_NODE){
     //text was discovered
     return elem.data.replace("\n", "").trim();
   }
   const nodes = elem.childNodes;
   return Object.keys(nodes).map(key=>recursiveSearch(nodes[key])).join("");
}

const tds = document.getElementsByTagName('td');
const res = Object.keys(tds).map(key=>{
  const td = tds[key];
  return recursiveSearch(td);
});

console.info(res);
<table>
  <td>
    <a data-action = "details">
      <span>
    <span class = "">2019/01/04 13:36:19</span>
      </span>
    </a>
  </td>
  <td>
    <a data-action = "update-limit" data-filter = "limit">
  1.18809 (505.4)<br>$808.64
   </a>
  </td>

</table>

Ваш код кажется слишком сложным только для того, чтобы получать предупреждения innerHTML. Вот мое решение. Codepen

HTML

<table id = "table-body-positions">
    <tr>
    <td><a data-action = "details"><span><span id = "details">2019/01/04 13:36:19</span></span></a></td>
    <td><a data-action = "update-limit" data-filter = "limit"><span id = "limit">1.18809 (505.4)<br>$808.64</span></a></td>
    </tr>
</table>

JS

let details = document.getElementById("details").innerHTML;
let limit = document.getElementById("limit").innerText;

alert(details);
alert(limit);

К сожалению, я не могу использовать идентификатор диапазона вместо класса диапазона. Я не могу ничего управлять, просто позвонив с другого веб-сайта. Спасибо за ответ.

Dorbagna 04.01.2019 19:16

Другие вопросы по теме