javascript - 无法在 Javascript 中使用 getAttribute() 从表中检索数据

标签 javascript html node.js html-table attributes

现在我正在学习 Node 。在此之前,如果我的问题不具体,请让我知道如何更好地表达,我很抱歉。

此代码用于删除元素属性。 表格列中有一种颜色,当我按下按钮时,td 标记中的属性 bgcolor 消失了。

当我运行它时,它总是显示tdelement为空?虽然我已经使用 for 语句来循环并检查它。

请使用Javascript回答。

function removeColor(color) 
{ 
  var table = document.getElementById("multi");
  var tdList = table.getElementsByTagName("td");

  // Loop through list <td> elements.
  for (var i = 0; i <= tdList.length; i++)
  {
    var tdElement = tdList.item(i);

    // Get the attribute.
    var colorAtt = tdElement.getAttribute("value");

    //If the attribute matches the color then delete attributes
    if (colorAtt == color)
    {
        tdElement.removeAttributeNode(colorAtt);
    }
  }
}

// the end for javascript -----------------

<table id="multi" border="1">
<tr>
    <td></td>
    <td bgcolor="#ff0000">1</td>
    <td bgcolor="#008000">2</td>
    <td bgcolor="#ffff00">3</td>
</tr>
<tr>
    <td bgcolor="#ff0000">1</td>
    <td bgcolor="#ff0000">1</td>
    <td bgcolor="#008000">2</td>
    <td bgcolor="#ffff00">3</td>
</tr>
<tr>
    <td bgcolor="#008000">2</td>
    <td bgcolor="#008000">2</td>
    <td bgcolor="#008000">4</td>
    <td bgcolor="#ffff00">6</td>
</tr>
<tr>
    <td bgcolor="#ffff00">3</td>
    <td bgcolor="#ffff00">3</td>
    <td bgcolor="#ffff00">6</td>
    <td bgcolor="#ffff00">9</td>
</tr>

</table>

<button onclick="removeColor('#ff0000')">Remove Red Background</button><br>

最佳答案

试试这个

function removeColor(color) 
{ 
  var table = document.getElementById("multi");
  var tdList = table.getElementsByTagName("td");

  // Loop through list <td> elements.
  for (var i = 0; i <= tdList.length; i++)
  {
    var tdElement = tdList.item(i);

    // Get the attribute.
    var colorAtt = tdElement.getAttributeNode("bgcolor");

    //If the attribute matches the color then delete attributes
    if (colorAtt && (colorAtt.value == color))
    {
        tdElement.removeAttributeNode(colorAtt);
    }
  }
}

using .getAttribute("value"); 将尝试从元素获取属性“value”。您需要在其中获取 Node .getAttributeNode("bgcolor");

Fiddle

关于javascript - 无法在 Javascript 中使用 getAttribute() 从表中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32943703/

相关文章:

node.js - Mongoose 模式最有效的结构

javascript - Angular:如何根据不同模板的输入为特定组件中的变量赋值

javascript - 如何使用弹出窗口内的按钮关闭弹出窗口?

html - 如何使用 CSS 删除输入字段最后一个字母的字母间距?

html - 如何超链接包含图像的跨度

javascript - 附加到匿名函数内部的对象

javascript - 我的基于网络的 javascript 游戏对 onkeyup 事件不是很敏感。如何让程序检测所有击键而不仅仅是其中一些击键?

javascript - JS 正则表达式限制

html - 随着浏览器宽度的减小增加元素填充

node.js - 从 Express 堆栈中删除中间件的正确方法?