Я использую DynaTree (https://code.google.com/p/dynatree), но у меня возникли некоторые проблемы, и я надеюсь, что кто-то может помочь ..
Я показываю дерево на странице, как показано ниже:
<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>
Однако я пытаюсь изменить значок элемента независимо от того, выбран он или не только с помощью JavaScript .
новый значок, который я хочу использовать, - base2.gif
Я пробовал использовать следующее, но похоже, что это не работает:
document.getElementById('item1').data = "icon: 'base2.gif', url: 'output.htm', target: 'AccessPage', output: '1'";
кто-нибудь знает, что я делаю неправильно?
javascript
dom
dynatree
Аарон
источник
источник
data
- это префикс. Вы должны использоватьdata-you-attribute-name
Ответы:
Используйте
setAttribute
метод:Но вам действительно следует использовать данные, за которыми следует тире и его свойство, например:
А для этого в JS используйте
dataset
свойство:источник
Пожалуйста, используйте набор данных
поэтому в вашем случае для настройки данных:
источник
Для людей, пришедших из Google, этот вопрос не об атрибутах данных - OP добавила нестандартный атрибут к своему объекту HTML и задалась вопросом, как его установить.
Тем не менее, вы не должны добавлять пользовательские атрибуты для ваших свойств - вы должны использовать атрибуты данных - например , OP должен использовать
data-icon
,data-url
,data-target
и т.д.В любом случае оказывается, что способ установки этих атрибутов с помощью JavaScript в обоих случаях одинаков. Использование:
изменить данный атрибут ,
attributeName
чтобыvalue
для элемента DOMele
.Например:
Обратите внимание, что вы также можете использовать
.dataset
для установки значений атрибутов данных, но, как указывает @racemic, это на 62% медленнее (по крайней мере, в Chrome на macOS на момент написания). Поэтому я бы рекомендовал использовать этотsetAttribute
метод.источник