Как связать / получить данные с узлом jtree

У меня есть встроенные данные html, как показано ниже, которые отлично отображаются в браузере без каких-либо ошибок.

<li id="node_1" test="testing">Node Name
  <data name="name" type="string" value="Steve"/>
  <data name="job" type="string" value="Developer"/>
  <data name="age" type="int" value="35"/>
</li>

У меня есть следующий код JavaScript:

$('#jstree').on("changed.jstree", function (e, data)
{
  var node_id = data.node.id;
  var value = $("#"+node_id).attr("test");
  console.log(node_id);
  console.log(value);
});

Я могу получить доступ к атрибуту "test", добавленному в узел "li". Но не знаю, как получить доступ к дочерним узлам «данных» и получить значение его свойства.

Я нашел несколько указателей в ссылке который использует json, но в моем случае у меня есть только встроенные данные html, и в данный момент я не могу переключиться на json. Пожалуйста помоги.


person Balamurugan Mohanadoss    schedule 13.03.2018    source источник


Ответы (1)


Глядя на структуру DOM, я обнаружил, что для каждого узла "li" создается подузел "a", а добавленная мной структура данных отображается как дочерний узел узла "a", а не узла "li".

Структура DOM - щелкните, чтобы сделать снимок

Итак, из кода нам нужно получить доступ к подузлу «a» и получить потомков из подузла, как показано ниже ...

var properties = $("#"+node_id).find('a:first').children(".property");
for(var i=0;i<properties.length;i++)
{
  console.log($(properties[i]).attr("name"));
  console.log($(properties[i]).attr("value"));
}

Надеюсь, это поможет другим, которые могут оказаться в подобной ситуации.

person Balamurugan Mohanadoss    schedule 13.03.2018