通过javascript访问div中的项

通过javascript访问div中的项,javascript,html,Javascript,Html,我有一个div,其中包含其他标记 <div id="mainDiv"> <div> <table> <tbody> <tr> <td>1</td> <td>item</td>

我有一个div,其中包含其他标记

<div id="mainDiv">
    <div>
        <table>
            <tbody>
                   <tr>
                      <td>1</td>
                      <td>item</td>
                      <td>item</td>
                      <td>2</td>
                   </tr>
            </tbody>
        </table>
    </div>

    <div>
        <table>
            <tbody>
                   <tr>
                      <td>1</td>
                      <td>item</td>
                      <td>item</td>
                      <td>5</td>
                   </tr>
            </tbody>
        </table>
    </div>
</div>

1.
项目
项目
2.
1.
项目
项目
5.
如何通过javascript访问此mainDiv的
。我想更改这些

var allDivTd=document.getElementById(“mainDiv”).getElementsByTagName(“TD”);
对于(var i=0;i
使用jQuery:
$('div#mainDiv td')
将返回一个包含所有
的集合

您可以使用来修改它们的内容。有关示例,请参见

如果您要执行大量的JS,并且有大量的DOM操作要做,请使用jQuery。它具有来自CSS的强大而简洁的选择器语法、许多用于DOM操作和跨浏览器兼容性的扩展方法。但是,如果你只做了少量的JS,那么就不觉得有必要了。

你可以用它来获取所有的
tr
标记,然后迭代它们来访问各个
td
s:

var children = document.getElementById('mainDiv').getElementsByTagName('td');
trs = document.getElementsByTagName('tr');
for (var i = 0; i < tr.length; i++) {
    var tds = trs[i].childNodes;
        for (var J = 0; j < tds.length; j++) {
            var td = tds.childNodes[j];
            // process td
        }
    }
}    
trs=document.getElementsByTagName('tr');
对于(变量i=0;i

不过,正如你所看到的,这看起来不太好,而且相当冗长。使用诸如jQuery、mootools、dojo等Javascript框架更容易。。。对于这类任务。它们支持CSS选择器(例如),让您可以使用CSS选择器遍历DOM,CSS选择器类似于XPath样式的表达式,比手动遍历DOM功能强大得多,而Javascript最初提供的功能很少

编辑您的答案-您需要一些引号:)对于这种情况,最好参考jquery。但是,如果你告诉他使用jquery的理由,我会对你加1分。或者在Prototype.js$$('div#mainDiv td')@Sayem Ahmed中,Brian的回答对OP来说是准确的,因为如果他只是在操纵表,那么使用jquery库可能会有些过火。如果他做了很多JS,那么我已经介绍了使用jQuery的一些最好的理由。@StuperUser应该在最高的山上被回响一千次。jQuery不是JavaScript的替代品。它是一个高需求的框架,简化了JavaScript中的困难任务和链接,并不适用于所有场景。我发现有太多的人“知道”jQuery而不知道JavaScript——就在几年前我还以为这是不可能的。
trs = document.getElementsByTagName('tr');
for (var i = 0; i < tr.length; i++) {
    var tds = trs[i].childNodes;
        for (var J = 0; j < tds.length; j++) {
            var td = tds.childNodes[j];
            // process td
        }
    }
}