2012-08-07 96 views
0

我正在動態創建一個元素我如何給這個ID?動態創建ID

_addQuestionElement : function() { 
     var el = new Element('div'); 
     el.addClass('dg-question-label'); 
     el.set('html', this._getCurrentQuestion().label); 
     $(this.html.el).adopt(el); 
    }, 

即時通訊使用moo工具和jquery。

非常感謝

+1

動態地爲隨機生成的,或只是想知道如何在代碼中設置一個特定的ID? – dom 2012-08-07 13:03:53

回答

0

你可以給它這個樣子,

var uniqueNumber = 1; //define uniqueNumber globally and increament at each element creation 

用JavaScript

el.id = 'idprefix' + uniqueNumber++) 

使用jQuery

$(el).attr('id','idprefix' + uniqueNumber++); 
+0

拒絕投票的原因? – Adil 2012-08-09 12:49:15

1

剛分配通過ID(如果您創建了e字元素與新元素()):

var yourCustomId = "myId"; 
el.id = yourCustomId; 

或者使用Mootools的ATTR設定功能:

var yourCustomId = "myId"; 
el.setProperty("id", yourCustomId); 
0

在jQuery中,創建具有ID的DIV,你會做這樣的事情:

function createDiv(id) { 
    $("body").append("<div id=" + id + "></div>"); 
} 

createDiv("myNewDivId"); 
0

_addQuestionElement,我想你需要爲每個問題元素生成一個唯一的ID。

 
var IDs = 0; 
var pfx = "id_"; 

_addQuestionElement : function() { 
    ... 
    el.attr("id", pfx + ++IDs); 
2

你的代碼看起來像MooTools的,這裏就是我會做(清理你的代碼位)

_addQuestionElement: function() { 
    var el = new Element('div', { 
     'class': 'dg-question-label', 
     html: this._getCurrentQuestion().label, 
     id: 'yourId' 
    }); 
    $(this.html.el).adopt(el); 
} 

如果您正在生成的多個相同的元素,您的ID將需要以某種方式每次都是獨一無二的。

你也可以做,而不在於EL變量(當然,除非它的使用在函數某處進一步,你不包括)

_addQuestionElement: function() { 
    $(this.html.el).adopt(new Element('div', { 
     'class': 'dg-question-label', 
     html: this._getCurrentQuestion().label, 
     id: 'yourId' 
    })); 
}​ 
0
var el = $('<div />') .attr('id', myVal); 
0

由MooTools的創建或訪問的所有元素自動獲得無論如何,唯一的uid(對於DOM)可以讓你不必自己保持狀態(如果你想自動執行此操作)。

console.log(Slick.uidOf(new Element('div')))

所以......

_addQuestionElement: function() { 
    var el = new Element('div.dg-question-label', { 
     html: this._getCurrentQuestion().label 
    }); 

    // prefix number with uid- 
    el.set('id', 'uid' + Slick.uidOf(el)).inject(this.html.el);  
}, 

通過合併元素構造給它一個ID,這是不言而喻:

var el = new Element('div#someid.dg-question-label')或傳遞給構造屬性添加:

new Element('div', { id: 'foo' })

0

您可以使用jQuery插件idfy

充分披露:我寫的插件:)