javascript - 如何在 javascript 函数中访问通过 jquery 克隆的元素的属性?

标签 javascript jquery html

我需要允许我的用户动态创建新类别,然后在类别内创建分支和子分支。为了促进这一点,我构建了一个包含多个嵌套表的 html 表。每个嵌套表都被它自己的 div 包围。基本类别显示在左侧,分支和子分支显示在右侧。

为了允许用户创建分支,我在 JavaScript 函数中调用 jquery clone() 。像这样:

function elementCopy(targetTable, targetDiv)
{        
  var clone = $('.' + targetTable).clone(true).appendTo($("." + targetDiv));     
} 

这将创建所请求的克隆并将其放置在正确的表中。但我还没有发现如何访问克隆的属性来编辑它们。

在此功能的先前迭代中,我从 document.ready() 中调用了 jquery clone()。

$('button[name="newTasks"]').click(function()
    {                        
        //Create the cloned block and keep the event listener so the     newly displayed plus icon 
        // also creates a new block.
        var clone = $(".tasksTable").eq(0).clone(true).appendTo(".tasksDiv"); 

        //
        clone.find( ".tasksTable" ).attr('name', 'Tasks' + '_' + countTaskBlocks);                        
     });

我放弃了这次迭代,因为我无法将参数发送到 document.ready() 版本。如果没有参数,我无法将克隆定位在其正确的表和子表中。然而,这个版本确实允许我编辑克隆的属性。

此行编辑具有相同类名的所有元素:

$('.' + targetTable).attr('class', 'tasksTable' + '_' + countTaskBlocks);

如何编辑在调用“elementCopy”函数时创建的特定克隆的“name”、“id”和“class”属性?

最佳答案

JQuery 方法是可链接的,因此您可以执行类似的操作。

function elementCopy( targetTable, targetDiv ) {
    var clone = $( '.' + targetTable )
        .clone( true )
        .appendTo( $( "." + targetDiv ) )
        .attr( {
            'name':  'Tasks' + '_' + countTaskBlocks,
            'id':    'Tasks' + '_' + countTaskBlocks,
            'class': 'Tasks' + '_' + countTaskBlocks
        } );
    return clone;
}

查看下面的演示。

$('a').clone( true ).appendTo( $('body') ).attr( { 'class': 'Goodbye', 'href': 'http://www.example.com' } );
a::before { margin-right: .5em; content: attr(href); } a::after { margin-left: .5em; content: attr(class); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="hello" href="#">Link</a>

关于javascript - 如何在 javascript 函数中访问通过 jquery 克隆的元素的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32260220/

相关文章:

javascript - IE8 无法向窗口返回的 JavaScript 对象添加属性

jquery - 填充内容时检测 div 大小(高度)(来自数据库)

javascript - 在构建我自己的 JavaScript 库或 jQuery 插件时,我是否必须避免被侵入?

javascript - 同源 CPU 密集型 iframe 的单独事件循环

javascript - 有什么方法可以从更改 Object.prototype.hasOwnProperty 的人那里恢复过来吗?

jQuery UI 选项卡 : Mismatching fragment identifier (jQuery 1. 71,UI 1.8.16)

javascript - jQuery - 在 DIV/或可排序元素中拖动元素

c# - 通过显示文本查找带有 selenium 的元素

html - 使用此规则 "element element"不应用 css。这段代码有什么问题?

html - SharePoint Intranet 分析