簡體   English   中英

如何在javascript函數中訪問通過jquery克隆的元素的屬性?

[英]How can I access the attributes of an element cloned via jquery within a javascript function?

我需要允許我的用戶動態創建新類別,然后在類別中創建分支和子分支。 為方便起見,我建立了一個包含多個嵌套表的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()版本,所以放棄了此迭代。 沒有參數,我無法將克隆放置在其適當的表和子表中。 但是,此版本DID允許我編輯克隆的屬性。

這行編輯所有具有相同類名的元素:

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

如何編輯在對“ elementCopy”函數的調用中創建的特定克隆的“名稱”,“ id”和“類”屬性?

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> 

通過克隆的元素的類名稱搜索將克隆附加到的DIV的子代。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM