Saya menggunakan The DynaTree (https://code.google.com/p/dynatree) tetapi saya mengalami beberapa masalah dan berharap seseorang dapat membantu ..
Saya menampilkan pohon di halaman seperti di bawah ini:
<div id="tree">
<ul>
<li class="folder">Outputs
<ul>
<li id="item1" data="icon: 'base.gif', url: 'page1.htm', target: 'AccessPage'">Item 1 Title
<li id="item2" data="icon: 'base.gif', url: 'page2.htm', target: 'AccessPage'">Item 2 Title
<li id="item3" data="icon: 'base.gif', url: 'page3.htm', target: 'AccessPage'">Item 3 Title
<li id="item4" data="icon: 'base.gif', url: 'page4.htm', target: 'AccessPage'">Item 4 Title
</ul>
</ul>
</div>
Namun saya mencoba untuk mengubah ikon pada suatu item tidak peduli apakah itu dipilih atau tidak hanya menggunakan JavaScript .
ikon baru yang ingin saya gunakan adalah base2.gif
Saya telah mencoba menggunakan yang berikut tetapi sepertinya tidak berhasil:
document.getElementById('item1').data = "icon: 'base2.gif', url: 'output.htm', target: 'AccessPage', output: '1'";
ada yang tahu apa yang mungkin saya lakukan salah?
javascript
dom
dynatree
Aaron
sumber
sumber
data
adalah prefiks. Anda harus menggunakandata-you-attribute-name
Jawaban:
Gunakan
setAttribute
metode:Tetapi Anda benar-benar harus menggunakan data yang diikuti dengan tanda hubung dan dengan propertinya, seperti:
Dan untuk melakukannya di JS gunakan
dataset
properti:sumber
Harap gunakan dataset
jadi dalam kasus Anda untuk menyetel data:
sumber
Untuk orang yang datang dari Google, pertanyaan ini bukan tentang atribut data - OP menambahkan atribut non-standar ke objek HTML mereka, dan bertanya-tanya bagaimana cara menyetelnya.
Namun, Anda tidak harus menambahkan atribut khusus untuk properti Anda - Anda harus menggunakan atribut Data - misalnya OP seharusnya digunakan
data-icon
,data-url
,data-target
, dllBagaimanapun, ternyata cara Anda menyetel atribut ini melalui JavaScript adalah sama untuk kedua kasus tersebut. Menggunakan:
untuk mengubah atribut yang diberikan
attributeName
menjadivalue
untuk elemen DOMele
.Sebagai contoh:
Perhatikan bahwa Anda juga dapat menggunakan
.dataset
untuk menyetel nilai atribut data, tetapi seperti yang ditunjukkan @racemic, ini 62% lebih lambat (setidaknya di Chrome di macOS pada saat penulisan). Jadi saya akan merekomendasikan menggunakansetAttribute
metode ini sebagai gantinya.sumber