在典型的GridView上,如何区分内部的标签

时间:2013-08-06 14:49:52

标签: javascript

我正在使用GridView,有些行是可编辑的,有些行不可编辑。对于特定的单元格,我可以获取返回<TD>的cell.tagName。我如何获得它的孩子的标签名称?我需要使用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>

谢谢

2 个答案:

答案 0 :(得分:0)

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

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

childNodes返回类似数组的集合。您可以在此处详细了解:https://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes

答案 1 :(得分:0)

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

element.tagName

请参阅this

但你的问题不是这个,因为你似乎已经知道了。您想知道如何获取此类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 */ })