Если вы хотите использовать старомодный метод чистого JavaScript, вы можете сделать простой прогон DOM.
Если вы добавите id
в таблицу, ваша жизнь будет намного проще, особенно если вы добавили (или позже добавили) другие таблицы на странице.
<table id="nameTable">
...
</table>
Теперь вы можете получить доступ к таблице в JavaScript и сохранить ссылку на нее в переменной. Вы также захотите инициализировать пустую переменную array/list, чтобы удерживать имена позже.
var nameTable = document.getElementById("nameTable");
var nameArray = [];
Далее вы начинаете цикл через дочерние элементы таблицы, каждая из которых будет элемент tr
(строка таблицы).
for (var i=0; i<nameTable.childNodes.length; i++) {
...
}
Внутри этого цикла for
вы будете строить свой список [фамилия, имя] пар. Вы сделаете это, захватив значение каждой из двух дочерних ячеек td
(таблица данных) текущей строки.
var dataCells = nameTable.childNodes[i].childNodes;
var namePair = [dataCells[0].innerHTML, dataCells[1].innerHTML];
Это должно дать вам JSON массив что-то вроде этого (добавили мои ценности):
[
["Andy", "Jackson"],
["Barry", "Obama"],
["Benny", "Franklin"],
["Georgey", "Washington"],
["Billy", "Clinton"]
]
Для обзора, полный код будет выглядеть примерно так:
var nameTable = document.getElementById("nameTable");
var nameArray = [];
for (var i=0; i<nameTable.childNodes.length; i++) {
var dataCells = nameTable.childNodes[i].childNodes;
var namePair = [dataCells[0].innerHTML, dataCells[1].innerHTML];
}
ПРИМЕЧАНИЕ: Это забавно, но вполне вероятно, что лучшее решение, если вы не возражаете против жестко закодированного массива JSON в исходном коде (если у вас есть таблица там, в любом случае это r не имеет значения), возможно, напечатать массив json_encode
d в теге <script>
прямо с PHP, как предположил @JayBhatt. Скорее всего, это более быстрый метод, и он значительно снижает нагрузку на браузер пользователя.
Спасибо, я думаю, что отвечает на мой вопрос. Мне нужно лучше изучить DOM ... – JDelage
Я получаю ошибку типа - nameTable null. Я попытался поместить код внутри 'window.onload', чтобы убедиться, что я не пытался получить ссылку до ее загрузки, но это не имеет никакого значения ... – JDelage
Вы добавили' id = "nameTable" 'на свой '
Кодируйте массив Json с использованием json_encode РНР, присвоить эту строку в переменную JavaScript и декодирование JSON в массив с помощью JavaScript ...
источник
2013-03-12 18:58:36
Другого способа может быть присвоить JSON к скрытому входу вместо этого яваскрипта и позже получите входное значение в вашем javascript-коде.
источник
2013-03-12 19:05:19 fray88
Смежные вопросы