2015-11-09 69 views
1

比方說,我有這樣的HTML元素:如何更改其中包含無效字符的元素的屬性?

<div id="n1" nameok="hello"> 

如果我想改變使用JS的nameok屬性,這是非常簡單的:

var x = document.getElementById("n1"); 
x1.nameok = 'new value'; 

但是,讓我們說,我有另一種元素,像這樣:

<div id="n2" name-not-ok="hello"> 

然後,第二行產生一個錯誤:

var x = document.getElementById("n2"); 
x2.name-not-ok = 'new value'; 

我想這個問題存在於「 - 」這是非常可能不允許的,所以我想是這樣

x2."name-not-ok" = 'new value'; 
x2("name-not-ok") = 'new value'; 

但沒有奏效。 我嘗試過Google,但是在屬性名稱中出現「禁止」字符時找不到正確的語法。

當然,我可以修改相應的CSS以避免使用帶有「 - 」的屬性,然後更改我所有的HTML代碼......但首先,此屬性是我沒有寫入「包」的一部分,其次......必須有一種方式;)

+2

'x2.setAttribute('name-not-ok','new val');' – Tushar

+0

謝謝!請將其張貼爲答案,以便我可以接受:) – ZioBit

回答

2

使用setAttribute如下

x2.setAttribute('name-not-ok', 'new val'); 

我會建議使用自定義屬性data-*屬性。

x2.dataset.nameOk = 'new val'; 
+0

如上所述,我沒有寫出那些......實際上,它們是Bootstrap進度條: http://www.w3schools.com/bootstrap/bootstrap_progressbars。 asp – ZioBit

+0

@ZioBit這意味着你已經包含了jQuery。如果是,則使用'$('#n2')。attr('name-not-ok','new val');' – Tushar

+0

好的,謝謝你的提示。我真的很新的jQuery,所以...任何幫助讚賞:)但是有什麼特別的理由「使用」jQuery的這個任務,或者它是保存2個字節? :) – ZioBit

-1

嘗試:

X2 [ 「名稱 - 不OK」] = '新值';

相關問題