2013-08-07 187 views
1

我創建錨標記動態像傳遞參數

for (var i = 0; i < json.length; i++) 
{ 
     <td><a href='#' id=" + json[i].id + " onclick=getId('" + json[i].id + "','"+ json[i].text +"')>" + json[i].text + " </a></td> 
} 

,並在onclick功能我定義了諸如

function getId(ID,text) 
{ 
     console.log(ID); 
     console.log(text); 
} 

在這種情況下onclick如果文本沒有按價值不包含任何空格或單詞之間的空白,我可以在控制檯中獲取文本值, 大小寫如果文本包含任何空格,則顯示錯誤,如Unexpected token ILLEGAL

+0

你可以發佈一些完成/生成的錨標籤的樣子嗎?你可能有什麼東西在破壞你的語法 – thmshd

+0

有可能你的文本值可能有一個尾隨的不可見字符或空格而不是空格,它們就是這些字符。這將有助於瞭解JSON的來源以及是否有任何字符串檢查完成。看到這個http://stackoverflow.com/questions/12719859/syntaxerror-unexpected-token-illegal – Calvin

回答

1

<a href='#' id=" + json[i].id + " onclick=getId('" + json[i].id + "','"+ json[i].text +"')>" + json[i].text + " </a>

以上代碼可能會奏效,但恕我直言它不是好的做法。

試試這個,我prefere這種方式和更清潔。

var a = document.createElement('a'); 
a.setAttribute('id',json[i].id); 
a.setAttribute('href',"#"); 
a.innerHTML = json[i].text; 
a.onclick = function(e) { 
    getId(json[i].id, json[i].text); 
    e = e || window.event; 
    e.cancelBubble = true; 
    if (e.stopPropagation) { 
     e.stopPropagation(); 
    } 
    return false; 
};