我正在尝试使用attr()标记设置两个属性,但它在旧的jquery版本1.3.4中工作正常,但在新版本2.1.3中不起作用。我正在使用Grider API,它具有以下addRow()
函数
function addRow() {
var tr = $(table).find('tr:not(.noedit):first').clone();
addFormPos();
if($(tr).find("input, select, textarea").length > 0) {
$(tr).find("input, textarea, select").each(function(index, elem) {
// Change the name of the fields
var newName = '';
if(config.formPos !== '') {
newName = elem.name.replace(/\[[0-9]+\]/i, '[' + config.formPos + ']');
}else {
newName = elem.name;
}
if(elem.type == 'checkbox' || elem.type == 'radio') {
$(elem).attr({'name': newName, 'checked': false})
}else {
$(elem).attr({'name': newName, 'value': ''});
}
$(elem)
});
$(tr).find("input:radio, input:checkbox").attr('checked', false);
}
if(cols[k] && cols[k].type == "" && cols[k].formula)
$(tr).find("td:eq(" + cols[k].pos + ")").html('');
if(config['countRow']) {
var fila = parseInt($(table).find('tr:not(.noedit):last td:eq('+ config['countRowCol'] +')').html()) + 1;
$(tr).find('td:eq('+ config['countRowCol'] +')').html(fila);
}
$(table).find('tr:not(.noedit):last').after(tr);
// Register elements that fire events
setEvents();
for(var kk in cols){
if(cols[kk].summary)
calculateSummary(cols[kk].name);
}
}
我在以下代码行中面临问题
$(elem).attr({'name': newName, 'value': ''});
它没有在jquery 2.1.3版本中设置value=""
,但正确设置了名称。有人可以建议我做错了吗?
更新
这在Oracle APEX v5.0
新主题中不起作用。我正在使用github中的以下API
Grider.js
答案 0 :(得分:-1)
也许这与jQuery无关。
在HTML中考虑这个元素。
<p id="content">something here<p>
使用Vanilla JS为其添加属性。
var elem = document.getElementById('content');
elem.setAttribute("value","");
检查<p>
元素。您会发现value属性存在但没有任何值。
<p id="content" value>something here</p>
令人惊讶的是,当您通过单击“编辑为HTML”从开发工具复制此HTML代码段时,这将是输出。
<p id="content" value="">something here</p>
似乎只是一个浏览器技巧。它不应该影响任何功能。