0

我正在为重复的 html 动态构建元素。

我正在创建一个display:table,一切似乎都很顺利,但是当我在name一个元素被$.append()编辑之前更改它时,它不会出现在 Chrome“元素”中,并且以后不能被 jQuery 选择;但是,在$.append()ing 之前,$.prop('name')可以alert()ed。

是否应该$.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);
    });
4

2 回答 2

2

name属性不适用于<div>元素 - 它们没有name属性。因此,您所做的属性更改不会反映在属性值(DOM 检查器)中。

如果需要选择器,则应使用 id 或 class 代替。

于 2013-06-10T14:19:50.073 回答
1

您可以尝试attr代替prop. “属性选择器”基于属性而不是属性进行选择。为了做类似$("div[name=...的事情,你必须设置属性,而不是属性。

应该注意的是,这name不是div.

于 2013-06-10T14:17:45.253 回答