【问题标题】:JS setattribute is not a function- Firefox, chromeJS setattribute 不是函数——Firefox、chrome
【发布时间】:2013-11-08 04:02:05
【问题描述】:

我有这个 JavaScript 函数:

function Test(isValid) {    
    var divStart = $get('divDateFrom');
    var divEnd = $get('divDateTo');
    var txtStartDate = divStart.firstChild;
    var txtEndDate = divEnd.firstChild;
    var isValidFromForecastStartDate;
    txtEndDate.setAttribute('dateInRegionalFormat', txtEndDate.value);
}

此函数在 IE 中运行良好,但在 Firefox 和 Chrome 中出现“txtEndDate.setattribute 不是函数”错误。

【问题讨论】:

  • SetAttribute 应该可以工作,请检查您是否在“txtEndDate”中获得正确的对象
  • 你能把你的整个代码贴在 Js fiddle 中吗

标签: javascript asp.net


【解决方案1】:

我最近遇到了同样的问题。尝试摆脱“.value”部分。它可能对你有用。

txtEndDate.setAttribute('dateInRegionalFormat', txtEndDate);

【讨论】:

    【解决方案2】:

    你可以这样做:

    txtEndDate['dateInRegionalFormat'] = txtEndDate.value;
    

    代替旧代码:

    txtEndDate.setAttribute('dateInRegionalFormat', txtEndDate.value);
    

    【讨论】:

      【解决方案3】:

      使用jquery.attr()点赞,

      $(txtEndDate).attr('dateInRegionalFormat', txtEndDate.value);
      

      更新可能有multiple elements,所以使用[0]作为first element之类的,

      txtEndDate[0].setAttribute('dateInRegionalFormat', txtEndDate.value);
      

      你应该先检查elements exists or not之前的setting attribute是否像,

      if(txtEndDate.length)
      {
         txtEndDate.setAttribute('dateInRegionalFormat', txtEndDate.value);
      }
      

      【讨论】:

      • 这是Java脚本,所以如果你能提供Java脚本的解决方案就更好了。谢谢
      • @SyedKalim 看到我更新的答案,或者你能发一个online demo on fiddle吗?
      • @RohanKumar 第一个孩子只返回一个元素而不是元素数组
      • 那么解决办法是什么?
      • @Rohan,,,txtEndDate[0].setAttribute('dateInRegionalFormat', txtEndDate.value);它抛出异常...我不知道为什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多