【问题标题】:javascript button works in ie, not firefox or chromejavascript按钮适用于ie,而不是firefox或chrome
【发布时间】:2009-07-27 16:06:56
【问题描述】:

我正在编写一个显示表格的简单网页。在表格的右列中,我想在每一行中添加一个按钮,上面写着“查看”。我编写了一个函数来执行此操作,即通过创建一个按钮对象并设置 value = 'view' 但在 Firefox 和 chrome 中,按钮显示时没有文本。有谁知道为什么?这是我的代码:

function addRow(id, sender, message){
  var theTable = document.getElementById('messageTable');
  var lastRow = theTable.rows.length;
  var newRow = theTable.insertRow(lastRow);
  newRow.id = id;

  var cellLeft = newRow.insertCell(0);
  var textNode = document.createTextNode(id);
  cellLeft.appendChild(textNode);

  var secondCell = newRow.insertCell(1);
  var textNode2 = document.createTextNode(sender);
  secondCell.appendChild(textNode2);

  var messageCell = newRow.insertCell(2);
  var messageNode = document.createTextNode(message);
  messageCell.appendChild(messageNode);

  var viewCell = newRow.insertCell(3);
  var viewNode = document.createElement('button');
  viewNode.value = 'View';
  viewNode.onclick = function(){
    alert('clicked: ' + id);
  };
  viewCell.appendChild(viewNode);
}

【问题讨论】:

    标签: javascript button


    【解决方案1】:

    你必须做 viewNode.innerHTML = 'View' 因为在 FF 按钮中显示标签包裹的任何东西,而不是 value 属性

    【讨论】:

      【解决方案2】:

      <button>s 不像<input>s 那样自动关闭,并且没有value 属性。您已经在代码的其他部分找到了解决方案:

      viewNode.appendChild(document.createTextNode('View'));
      

      您也不需要为只使用一次的节点创建变量。您可以使用上述样式在几个地方合并您的代码。

      【讨论】:

        猜你喜欢
        • 2015-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-01
        • 1970-01-01
        相关资源
        最近更新 更多