Как я могу получить содержимое <td>с помощью JavaScript? - PullRequest
0 голосов
/ 14 мая 2011

Мой HTML

<tr class="g1">
    <td id="saveursqte_box[]">
        <div class="t">
            xxxxxxxxxxxxx
            <div class="r">
                <div class="a">
                </div>
                <img src="images/saveurs/saveur_test.jpg" width="125" border=0>
            </div>
        </div>
    </td>
    <td class="i">
        <input type="text" name="saveursqte[]" alt="2.95" value="" size="3" onBlur="__sumform();">
    </td>
</tr>

Что я пытаюсь сделать

Я хочу получить содержимое: <td id="saveursqte_box[]">используя javascript.

, то есть:

<div class="t">
    xxxxxxxxxxxxx
    <div class="r">
        <div class="a">
        </div>
        <img src="images/saveurs/saveur_test.jpg" width="125" border=0>
    </div>
</div>

Я пробовал этот javascript:

var saveursqte_box = document.getElementsById('saveursqte_box[]');

, а затем

htmltotal = htmltotal + saveursqte_box[i].innerHTML;

, но javascript не 'мне кажется, что: - (

Ответы [ 4 ]

1 голос
/ 14 мая 2011

В дополнение к примечанию @ scrappedcola об отсутствии 's' в getElementById могут возникнуть проблемы с использованием квадратных скобок в идентификаторе элемента.

Я запустил ваш пример в Firefox 4 с помощью <td id="saveursqte_box"> и это сработало, тогда как при использовании <td id="saveursqte_box[]"> я получил NULL в результате getElementById().

1 голос
/ 14 мая 2011

Это document.getElementById без "s". Это document.getElementById('saveursqte_box[]'); возвращает один элемент dom, а не массив, как jQuery. Так что код для получения innerHTML будет:

htmltotal += saveursqte_box.innerHTML;
0 голосов
/ 14 мая 2011

Спасибо всем! Я знаю, что мои навыки в Javascript низкие, но, объединив ваши ответы, я пришел с этим, и он отлично работает:

htmltotal += document.getElementById('saveurmoisqte_box_' + i).innerHTML;

Согласно вашему ответу, я удалил "s" из getElementById. Мое плохое: я скопировал getElementsByName и затем заменил Name на Id ... Вот почему там были "s". Такая ошибка, которая может потратить впустую неделю на отладку ...

После этого я переименую свой <td id="extrasqte_box[]"> в <td id="extrasqte_box_0">. Я думал, что вы могли бы написать ids массивы, как вы делаете с names (например: name="xxxx[]"), а затем повторить, но я был не прав.

С этим на месте это работает отлично! Не очень, но это работает.

Что я на самом деле делаю с этим:

У меня есть форма заказа со многими элементами, и когда вы заполняете ввод (количество), справа от вас появляется всплывающее изображение товара ... и когда вы уходите (onBLur), общая сумма формы обновляется, И с помощью функции, приведенной выше, я получаю содержимое <td> (включая изображение при наведении) и помещаю сводку пунктов, выбранных в «разделе оформления заказа». Результат супер-чистый для пользователя и удобный. Неудобно, я надеюсь, что это имеет смысл для вас.

0 голосов
/ 14 мая 2011

Также: saveursqte_box [i] i не определен.Просто используйте saveursqte_box

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...