更改$ .prop('name')之前的$ .append? (名称属性未在Chrome“元素”中显示)

时间:2013-06-10 14:05:07

标签: javascript jquery constructor append name-attribute

我正在为重复出现的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);
    });

2 个答案:

答案 0 :(得分:2)

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

如果您需要选择器,则应使用id或类。

答案 1 :(得分:1)

您可以尝试使用attr代替prop。 “属性选择器”基于属性而不是属性进行选择。要执行$("div[name=...之类的操作,您必须设置属性,而不是属性。

应注意name不是div的有效属性。