试图从tr标签获取类名 - 'undefined'

时间:2012-10-24 17:14:31

标签: javascript class getelementbyid tablerow

我需要从给定的<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/

5 个答案:

答案 0 :(得分:6)

element.class不正确。

您需要使用元素。 className

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

答案 1 :(得分:1)

使用className代替class jsfiddle

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

答案 2 :(得分:1)

使用

document.getElementById(tr_id).className

或支持DOMTokenList的现代浏览器:

var d = document.getElementById(tr_id).classList
// d[0] would return class_a

答案 3 :(得分:1)

它是类名,而不是类。

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

<强> jsFiddle example

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

答案 4 :(得分:1)

使用className代替class

document.getElementById(tr_id).className