我正在为重复出现的html动态构建元素。
我正在创建一个display:table
,一切似乎进展顺利,但是当我在name
之前更改元素的$.append()
时,它不会显示在Chrome“元素”中,以后不能被jQuery选中;但是,在$.append()
之前,$.prop('name')
可以是alert()
。
在更改$.append()
之前,动态构造的元素应该$.prop('name')
吗?
代码示例:
$.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);
});
答案 0 :(得分:2)
name
property不适用于<div>
元素 - 它们没有name
属性。因此,您正在进行的属性更改将不会反映在属性值(DOM检查器)中。
如果您需要选择器,则应使用id或类。
答案 1 :(得分:1)
您可以尝试使用attr
代替prop
。 “属性选择器”基于属性而不是属性进行选择。要执行$("div[name=...
之类的操作,您必须设置属性,而不是属性。
应注意name
不是div
的有效属性。