0

我正在研究 GridView,有些行是可编辑的,有些行是不可编辑的。对于特定单元格,我可以获得返回<TD>. 我怎样才能得到它的孩子的标签名称?我需要使用 javascript 获取 'select' 和 'div'

<td class="cl">
<select name="ctrlvcol%3DID%3Bctrl%3DmultizoneDemarcationSLC%3Brow%3D19451111%3Btype%3Dtxt" onchange="getOrder(this.value,19451111)">
</td>

<td class="cl">
<div onchange="getOrder(this.value,60874111)">
<span>
<nobr></nobr>
VALUE
</span>
</div>
</td>

谢谢

4

2 回答 2

0

可以使用以下方法获取某个元素的标签名称:

element.tagName

看到这个

但你的问题不是这个,因为你似乎已经知道了。您想知道如何获取此类元素的子td元素。为此,您可以使用childNodes元素属性来执行此操作:

var children = td.childNodes;

for (var i = 0; i < children.length; i++) {
    // do something with each child as children[i], like:
    switch (children[i].tagName) {
        case 'SELECT':
            // do something with the select
            break;
        case 'DIV':
            // do something else with the div
            break;
    }
}

但是,除非您受到其他项目规范的限制,否则像jQuery这样的库可能会很有帮助。

在 jQuery 中,您只会执行以下操作:

var allSelectsDirectlyInTds = $('td > select');
var allDivsDirectlyInTds = $('td > div');

// or for example add events to these elements you are searching for:
$('td > div').on('click', function() { /* do something when the user clicks on the div */ })
于 2013-08-06T15:01:01.583 回答
0

您可以使用单元格的childNodes集合。

var children = cell.childNodes;
var firstTagName = children[0].nodeName;

childNodes返回一个类似数组的集合。您可以在此处阅读更多相关信息:https ://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes

于 2013-08-06T14:56:21.610 回答