Подтвердить что ты не робот

Как получить идентификатор выбранного node в jsTree?

Как я могу получить идентификатор выбранного node в jsTree?

function createNewNode() {
  alert('test');
  var tree = $.tree.reference("#basic_html");
  selectedNodeId = xxxxxxxxx; //insert instruction to get id here
  tree.create({ data : "New Node Name" }, selectedNodeId);
}
4b9b3361

Ответ 1

Узлы в jsTree являются, по существу, обернутыми элементами списка. Это даст вам ссылку на первую.

var n = $.tree.focused().get_node('li:eq(0)')

Вы можете заменить $.tree.focused(), если у вас есть ссылка на дерево.

Чтобы получить идентификатор, возьмите первый сопоставленный элемент

if (n.length)
    id = n[0].id

или вы можете использовать функцию jQuery attr, которая работает с первым элементом в наборе

id = n.attr('id');

Ответ 2

Невозможно получить решение harpo для работы и не желая использовать решение Olivier, поскольку оно использует внутренние функции jsTree, я придумал другой подход.

$('#tree').jstree('get_selected').attr('id')

Это так просто. Функция get_selected возвращает массив выбранных элементов списка. Если вы делаете .attr в этом массиве, jQuery будет смотреть на первый элемент в списке. Если вам нужны идентификаторы нескольких вариантов выбора, тогда обрабатывайте их как массив.

Ответ 3

В jstree version 3.1.1 вы можете получить его непосредственно из get_selected:

$("#<your tree container id>").jstree("get_selected")

Ответ 4

  $.jstree._reference('#my_tree_container')._get_node(null, true).each(function() {
    id = $(this).attr("id");
    alert('Id selected: ' + id);        
  });

Ответ 5

В самой последней версии jsTree (проверено в 3.3.3) вы можете сделать это, чтобы получить массив идентификаторов:

var ids = $('#tree').jstree('get_selected');

Это вернет, например, ["selected_id1", "selected_id2", "selected_id3"]. Если вы хотите получить выбранные узлы (не идентификаторы), вы можете сделать это:

var nodes = $('#tree').jstree('get_selected', true);

текущие документы содержат дополнительную информацию.

Ответ 6

У меня возникли проблемы с получением выбранных идентификаторов из дерева с помощью MULTIPLE. Так я их получил:

var checked_ids = [];
$("#your-tree-id").jstree('get_selected').each(function(){    
      checked_ids.push($(this).data('id'));                         
});

Ответ 7

В моем случае вызов данных не работает. Мне удалось получить доступ к моим данным node, используя функцию attr.

$("#tree").jstree("get_selected").attr("my-data-name");

Ответ 8

чтобы получить все выбранные идентификаторы, используйте приведенный ниже код

var selectedData = [];
var selectedIndexes;
 selectedIndexes = $("#jstree").jstree("get_selected", true);
jQuery.each(selectedIndexes, function (index, value) {
     selectedData.push(selectedIndexes[index].id);
 });

теперь у вас есть весь выбранный идентификатор в переменной "selectedData"

Ответ 9

С последней версией Jstree; вы можете сделать это следующим образом:

<script type="text/javascript>
    var checked_ids = [];
    $('#your-tree-id).jstree("get_checked",null,true).each(function(){
        checked_ids.push(this.id);
    });
    alert(checked_ids.join(","));
</script>

Ответ 10

<script type="text/javascript>
    checked_ids.push($(this).context.id);
</script>

Ответ 11

Просто используйте

var nodeId = $('#FaqTreeView').jstree().get_selected("id")[0].id;

где #FaqTreeView - это id вашего div, который содержит jstree.

Ответ 12

В некоторых случаях и/или jstree это решение не работает.

$('#tree').jstree('get_selected').attr('id');

Вместо определенного "id" я ничего не получаю. Что для меня было трюком:

$("#tree").jstree("get_selected").toString();

Ответ 13

Это старые ответы на старые версии. Начиная с версии 3.3.3 это будет работать, чтобы получить все атрибуты выбранного node.

$('#jstree').jstree().get_selected(true)[0]

Если вы хотите, чтобы идентификатор затем добавил .id в конце. Вы можете посмотреть все другие атрибуты в инструментах веб-разработчика, если скопируете приведенный выше код.

Ответ 14

Вы можете использовать следующий код var nodes = $( "# jstree_demo_div" ). jstree (true).get_selected ( "full", true);//Список выбранных node

nodes [0].id//Что даст идентификатор 1-го объекта из массива