【问题标题】:JavaScript gives me [object HTMLTableCellElement] instead of the content of the cellJavaScript 给了我 [object HTMLTableCellElement] 而不是单元格的内容
【发布时间】:2018-11-25 01:17:16
【问题描述】:

HTML:

 <table>
 <tr>
     <td>1</td>
     <td>2</td>
     <td>3</td>
     <td>4</td>
     <td>5</td>
     </tr>
 </table>

脚本:

  var zahlen = document.getElementsByTagName("td");
  var ma = zahlen[0];

for(var i = 1; i <= zahlen.length; i++)
{
   if(ma > zahlen[i])
    ma = zahlen[i];   
}
document.writeln(ma);

我希望“ma”给我最大数量的标签,写在屏幕上,它必须是 5,但它却出现:[object HTMLTableCellElement],我不明白,请帮我解释一下它是如何工作的。

【问题讨论】:

  • getElementsByTagName() 返回的列表是 DOM 元素引用的列表。如果你想要一个元素的 content,你需要从那个元素类型的 API 中获取,可能是每个元素的 .textContent 属性。
  • 你的循环可能应该开始和0,你应该使用&lt;

标签: javascript dom html-table


【解决方案1】:

尝试以这种方式使用innerHTML 获取&lt;td&gt; 的内部内容,因为在您使用zahlen[0] 时,它会返回像&lt;td&gt;1&lt;/td&gt; 这样的html 元素。

注意:还像zah = zahlen[i].innerHTML一样在循环内缓存变量,并在条件中使用zah。希望这会有所帮助:)

var zahlen = document.getElementsByTagName("td");
var ma = zahlen[0].innerHTML;

for (var i = 0; i < zahlen.length; i++) {
      zah = zahlen[i].innerHTML;
      if (ma < zah) ma = zah;    
}
document.writeln(ma);
<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
  </tr>
</table>

【讨论】:

  • 但这只是让我得到 1 而不是 5
  • 但为什么我需要:zahlen[i] && typeof zahlen[i].innderHTML != undefined
  • 修复undefined 问题,如果你想逃避这种情况,那么你已经使用了var i = 0; i &lt; zahlen.length; i++,请参阅我的编辑。我已经删除了@ 987654331@i&lt;= zahlen.length。希望你现在明白了:)
【解决方案2】:

HTMLTableCellElementzalen NodeList 具有实例的对象类型。要获取HTMLTableCellElement 的内容,您可以使用其innerText 属性:

for ... {
  ma = zahlen[i].innerText

【讨论】:

    【解决方案3】:
    <!doctype html>
    <html>
    <body>
    <table>
     <tr id="nesto">
         <td>1</td>
         <td>2</td>
         <td>3</td>
         <td>4</td>
         <td>5</td>
         </tr>
     </table>
    </body>
    <script>
      var zahlen = document.getElementsByTagName("td");
      var ma = zahlen[0].innerHTML;
    for(var i = 1; i <= zahlen.length-1; i++)
    {
      if(ma < zahlen[i].innerHTML)
           ma = zahlen[i].innerHTML;  
    }
    document.writeln(ma);
    </script>
    </html>
    

    otput 是一个 html 代码,你必须使用属性 innerHTML 来获取 td 元素的内容。此代码运行良好

    【讨论】:

      猜你喜欢
      • 2014-01-22
      • 2013-05-05
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多