2

指定されたタグからクラス名を取得する必要がありますが、取得<tr>できません。

<table cellpadding=5 cellspacing=5>
    <tr id='cat_abc123' class='class_a'>
        <td>foo</td>
        <td><input type='checkbox' name='cb1' value='1' onClick="info(this, 'abc123')">
    </tr>
</table>

 <script language='javascript'>
     function info(theElement, id)
     {
         tr_id = 'cat_' + id;
         alert(tr_id + ' ' + document.getElementById(tr_id).class);
     }
 </script>

実例: http: //jsfiddle.net/rQpeu/

私は何が欠けていますか?

アップデート

間違った記述子を使用していました-Classnameを使用する必要があります。みなさん、迅速な対応ありがとうございます!更新されたjsfiddle:http: //jsfiddle.net/rQpeu/3/

4

5 に答える 5

7

element.classが正しくありません。

要素を使用する必要があります。className

https://developer.mozilla.org/en-US/docs/DOM/element.className

于 2012-10-24T17:17:16.973 に答える
1

classNameの代わりに使用class

document.getElementById(tr_id).className
于 2012-10-24T17:24:09.897 に答える
1

jsfiddleclassNameの代わりに使用class

 <script language='javascript'>
  function info(theElement, id)
     {
         tr_id = 'cat_' + id;
         alert(tr_id + ' ' + document.getElementById(tr_id).className);
     }
 </script>
于 2012-10-24T17:16:26.287 に答える
1

使用する

document.getElementById(tr_id).className

または、以下をサポートする最新のブラウザの場合DOMTokenList

var d = document.getElementById(tr_id).classList
// d[0] would return class_a
于 2012-10-24T17:16:35.460 に答える
1

クラスではなく、クラス名です。

alert(tr_id + ' ' + document.getElementById(tr_id).className);

jsFiddleの例

参照:https ://developer.mozilla.org/en-US/docs/DOM/element.className

于 2012-10-24T17:16:39.093 に答える