如何获取使用JavaScript的内容?

时间:2011-05-13 20:30:33

标签: javascript html dom

我的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似乎不喜欢我: - (

4 个答案:

答案 0 :(得分:1)

是document.getElementById没有“s”。 这个document.getElementById('saveursqte_box[]');返回一个dom元素而不是像jQuery这样的数组。所以获取innerHTML的代码是:

htmltotal += saveursqte_box.innerHTML;

答案 1 :(得分:1)

除了@ scrappedcola关于getElementById中没有's'的说明,您在使用元素ID中的方括号时也可能遇到问题。

我在Firefox 4中使用<td id="saveursqte_box">运行了您的示例并且它有效,而使用<td id="saveursqte_box[]">我得到了NULL getElementById()的结果。

答案 2 :(得分:0)

此外:    saveursqte_box [I] 我没有定义。只需使用saveursqte_box

即可

答案 3 :(得分:0)

感谢大家!我知道我的Javascript技能很低但是通过将你的答案结合在一起,我带来了这个并且它完美地工作:

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

根据你的回答,我删除了getElementById的“s”。我的不好:我复制了getElementsByName,然后将Name替换为Id ...这就是为什么那里有“s”的原因。那种可能浪费你一周时间来调试的错误......

之后,我将<td id="extrasqte_box[]">重命名为<td id="extrasqte_box_0">。我认为你可以像ids那样编写names数组(例如name="xxxx[]"),然后迭代,但我错了。

有了它,它完美地运作!不是bea-u-tiful,但它确实有效。

我实际做的是:

我有一个包含许多项目的订单,当您填写输入(数量)时,产品的悬停图像显示在右侧...当您离开(onBLur)时,表格总数会更新,AND使用上面的函数,我得到<td>的内容(包括悬停图像),并在“结帐部分”中放置所选项目的摘要。结果是超级干净的用户和用户友好。不方便的是我希望这对你有意义。