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

时间:2013-10-29 05:56:00

标签: 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);
}

此功能在IE中正常运行但我在Firefox和Chrome中遇到“txtEndDate.setattribute不是函数”错误。

3 个答案:

答案 0 :(得分:21)

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

答案 1 :(得分:3)

你可以这样做:

txtEndDate['dateInRegionalFormat'] = txtEndDate.value;

而不是旧代码:

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

答案 2 :(得分:0)

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

txtEndDate.setAttribute('dateInRegionalFormat', txtEndDate);