【发布时间】:2013-06-10 14:05:07
【问题描述】:
我正在动态地构造重复出现的 html 元素。
我正在创建一个display:table,一切似乎都很顺利,但是当我在一个元素被$.append()ed 之前更改它的name 时,它不会出现在Chrome“元素”中并且以后不能被 jQuery 选中;但是,在$.append()ing 之前,$.prop('name') 可以是alert()ed。
在更改$.prop('name')之前,动态构造的元素是否应该是$.append()ed?
代码示例:
$.fn.appendSingleRecordInsert = function(paramaterObject) {
return this.each(function () {
var $appendDiv = $('<div/>')
...
$.each(paramaterObject.rows, function(rowKey, rowValue){
var $rowDiv = $('<div/>');
$.each(rowValue.columns, function(columnKey, columnValue){
var $columnDiv = $('<div/>');
if(typeof columnValue.name !== 'undefined'{
$columnDiv.prop('name', columnValue.name);
}
...
$rowDiv.append($columnDiv);
})
$appendDiv.append($rowDiv);
});
$(this)[paramaterObject.domInsertMethod]($appendDiv);
});
【问题讨论】:
-
元素可见并显示在检查元素中,但名称错误?你试过
attr吗? -
@JamesMontagne 是的,它周围的所有其余代码都按预期工作。认为
attr是“坏”;)) 会尝试!....UPDATE:它成功了!想扩大回答?知道为什么吗? -
至少在我看来,
attr在处理尚未添加到 dom 的元素时更有意义。 -
检查一些事情。发布了答案,可能会更新更多细节。
-
当你说它“不能被 jQuery 选择”时,你的意思是你试图用属性选择器进行选择吗?
$("div[name=...?
标签: javascript jquery constructor append name-attribute