【问题标题】:Setting 2 attributes using Jquery?使用 Jquery 设置 2 个属性?
【发布时间】:2018-05-29 07:08:57
【问题描述】:

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

【问题讨论】:

  • 如果不输入,您将使用什么值,它不会设置值,只有输入具有您可以使用 data-* 的值。你也可以添加html标记吗
  • 你能在问题中添加相关的 HTML 吗?
  • 可以参考jQuery Docs
  • @guradio 添加了整个功能
  • select 和 textarea 没有属性值它是无效的使用 data-value 代替你仍然可以得到它并像那样设置它

标签: javascript jquery attr oracle-apex-5


【解决方案1】:

也许这与 jQuery 无关。

在你的 HTML 中考虑这个元素。

<p id="content">something here<p>

使用 Vanilla JS 为其添加属性。

var elem = document.getElementById('content');
elem.setAttribute("value","");

检查&lt;p&gt; 元素。您会发现 value 属性存在但没有任何值。

<p id="content" value>something here</p>

令人惊讶的是,当您通过单击“编辑为 HTML”从开发工具中复制此 HTML sn-p 时,这将是输出。

<p id="content" value="">something here</p> 

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

【讨论】:

  • 不确定投反对票的人是否真的尝试过执行这些步骤。
猜你喜欢
  • 1970-01-01
  • 2012-08-01
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
相关资源
最近更新 更多