0

私は GridView に取り組んでおり、一部の行は編集可能で、一部の行は編集できません。特定のセルについて、.tagName を返す cell.tagName を取得できます<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

セルの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 に答える
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 に答える