无法使用Javascript中的getAttribute()从表中检索数据

时间:2015-10-05 07:53:59

标签: javascript html node.js html-table attributes

现在我正在学习节点。在此之前我很抱歉,如果我的问题不具体,请告诉我如何更好地说明。

此代码用于删除元素属性。 表格列中有一种颜色,当我按下按钮时,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>

1 个答案:

答案 0 :(得分:1)

试试这个

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);
    }
  }
}

使用.getAttribute("value");会尝试获取属性&#39;值&#39;从元素。您需要获取节点.getAttributeNode("bgcolor");

Fiddle