开发者问题收集

如何使用 JavaScript 获取 <td> 的内容?

2011-05-13
7288

我的 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>

我想做什么

我想使用 javascript 获取以下内容: <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>

我尝试了这个 javascript:

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

然后

htmltotal = htmltotal + saveursqte_box[i].innerHTML;

但 javascript 似乎不喜欢我 :-(

3个回答

document.getElementById 没有“s”。 此 document.getElementById('saveursqte_box[]'); 返回单个 dom 元素,而不是像 jQuery 那样的数组。因此,获取 innerHTML 的代码将是:

htmltotal += saveursqte_box.innerHTML;
scrappedcola
2011-05-13

除了 @scrappedcola 指出 getElementById 中没有“s”之外,您在元素 id 中使用方括号时也可能遇到问题。

我在 Firefox 4 中使用 <td id="saveursqte_box"> 运行了您的示例,并且成功了,而使用 <td id="saveursqte_box[]"> 时, getElementById() 的结果为 NULL

Adam Franco
2011-05-13

另外: saveursqte_box[i] i 未定义。只需使用 saveursqte_box

Mouse Food
2011-05-13