使用屬性的名稱,如table:rowNum:<name>
的頁面上,例如元數據,在javascript dom中,是否有屬性名稱的規則?今天
var row = document.createElement('tr'); row.setAttribute('tup','emp:1'); row.setAttribute('emp:1:pkid','123');
一直在使用冒號分隔的名稱(例如,name='emp:1:emp_id'
)多年來以良好的成功,但得到了與冒號分隔屬性名稱位
特別是:
var el2 = row.parentNode.querySelector("[emp:1:pkid]"); => `Error: SYNTAX_ERR: DOM Exception 12`
就像是特殊字符 ':' 在DOM非法屬性的名稱?可以特殊字符逃脫與querySelector()
?
從鉻控制檯:
> row.parentNode.querySelector('[emp:1:pkid]'); Error: SYNTAX_ERR: DOM Exception 12
按照詹姆斯(如下圖):
> row.parentNode.querySelector('[emp\\:1\\:pkid]'); 123
但問題 - 不getAttribute
工作 - PIA
> row.getAttribute('emp:1:pkid'); 123 > row.getAttribute('emp\\:1\\:pkid'); null
有趣,我還不確定(查找它)。與此同時,對於未來的項目,請考慮使用jQuery的'data()'。它可以讓你設置任意的數據並將它與你的dom元素相關聯(都來自服務器,所以你的js只能使用它和客戶端。)http://api.jquery.com/jQuery.data/ – Milimetric
DOM屬性是類型的DOMString,它是一個UTF-16編碼的序列,據我所知,你使用的字符應該沒問題,但我並不是100%確定的,儘管如此評論而不是答案 –
@cc young - ' querySelector('[emp \\:1]')'將返回null,因爲它與元素不匹配(基於你最初發布的例子)。你的意思是'[emp \\:1 \\:update ]'? –