要將標籤與收音機鏈接起來,而不是使用JS變量進行維護,您可以生成一個類似於GUID的唯一ID,然後直接使用它。
刪除塊時,無需擁有該ID,因爲塊內有關閉的HTMLElement,所以可以使用parent()函數和remove()函數來執行該作業。
下面是一個例子:
/**
* Generate a guid part
*/
function GuidPart()
{
return Math.floor(Math.random() * 0x10000).toString(16);
}
/**
* Generate a new GUID
*/
function getGuid()
{
return (GuidPart() + GuidPart() + "-" +
GuidPart() + "-" +
GuidPart() + "-" +
GuidPart() + "-" +
GuidPart() + GuidPart() + GuidPart());
}
/**
* Build a new block with radio, label and close span
*/
function buildNewRadio(labelText)
{
// Retrieve a new guid
var guid = getGuid();
// Create a span container with the radio and label inside
// linked together by the guid
var container = $(document.createElement("span")).append(
$(document.createElement("input")).attr('id', guid),
$(document.createElement("label")).attr('for', guid).val(labelText))
.addClass("container");
// Finally append the close span (use to remove the entiere block)
container.append(
$(document.createElement("span").addClass("close")
.click(function(mouseEvent) {
// Retrieve the span container and remove it
$(this).parent().remove();
}));
return container;
}
可以調用buildNewRadio功能和HTML元素的結果連接到你的DOM容器
我喜歡這種方法如何不要求我擔任任何現實DOM中的命名空間。我主要關心的是Math.random()的隨機性。 [鏈接](http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript)討論了創建GUID,並且一些評論指出沒有關於如何以及javascript符合熵要求以獲得完整的2^122範圍的正確形成的GUID。你有沒有遇到過使用此代碼的唯一性問題? –