使用Jquery设置2个属性?

时间:2017-12-15 05:12:03

标签: javascript jquery attr oracle-apex-5

我正在尝试使用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

1 个答案:

答案 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> 

似乎只是一个浏览器技巧。它不应该影响任何功能。