Я пишу функцию додзё с Dojo 1.6, который может изменить значение атрибута:dojo.getAttr не является функцией
function replaceAttributeDojo(obj, attrName, newValue) {
var value = dojo.getAttr(obj, attrName);
if (value !== 'undefined') {
//console.log('Found attribute '+attrName+' on object '+obj.attr('nodeName')+'[id='+obj.attr('id')+', name='+obj.attr('name')+', widgetid='+obj.attr('widgetid')+']');
if (value == '') {
//console.log('Attribute value is empty, removing the attribute');
//obj.removeAttr(attrName);
return;
}
var newAttrValue = value.replace(/[\d]+/g, newValue);
dojo.setAttr(obj, attrName, newAttrValue);
} else {
//console.log('Did not find attribute '+attrName+' on object '+obj.attr('nodeName')+'[id='+obj.attr('id')+', name='+obj.attr('name')+', widgetid='+obj.attr('widgetid')+']');
}
}
Трассировка код и найти поджигатель потерял на этой линии
var value = dojo.getAttr(obj, attrName);
И он говорит мне
dojo.getAttr is not a function
функция определена вне dojo.ready, но называется внутри dojo.ready()
.
Здесь секция вызова функции внутри dojo.ready()
dojo.query("div, input, select", row).forEach(function(){
replaceAttributeDojo(row, 'id' , index);
replaceAttributeDojo(row, 'name' , index);
replaceAttributeDojo(row, 'widgetid' , index);
});
Все на той же странице в dojo.ready()
работает нормально, так как это могло возможно?
Спасибо, что работает! Также я спрашиваю, можно ли получить идентификатор Dom с помощью функции 'attr'? – Dreamer