JS setattribute不是一个函数 - Firefox,chrome

mnm*_*mnm 13 javascript asp.net

我有这个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);
}
Run Code Online (Sandbox Code Playgroud)

这个功能在IE中工作正常但我txtEndDate.setattribute在Firefox和Chrome中遇到" 不是函数"错误.

Roh*_*mar 26

使用jquery.attr()之类的,

$(txtEndDate).attr('dateInRegionalFormat', txtEndDate.value);
Run Code Online (Sandbox Code Playgroud)

更新有可能被multiple elements这样使用[0]first element类似,

txtEndDate[0].setAttribute('dateInRegionalFormat', txtEndDate.value);
Run Code Online (Sandbox Code Playgroud)

你应该首先检查elements exists or not之前是否setting attribute喜欢,

if(txtEndDate.length)
{
   txtEndDate.setAttribute('dateInRegionalFormat', txtEndDate.value);
}
Run Code Online (Sandbox Code Playgroud)

  • 这是Java脚本,所以如果你能用Java脚本提供解决方案会很好.谢谢 (7认同)

arr*_*man 5

你可以这样做:

txtEndDate['dateInRegionalFormat'] = txtEndDate.value;
Run Code Online (Sandbox Code Playgroud)

而不是旧代码:

txtEndDate.setAttribute('dateInRegionalFormat', txtEndDate.value);
Run Code Online (Sandbox Code Playgroud)