web-dev-qa-db-ja.com

jsTreeで選択したノードのIDを取得するにはどうすればよいですか?

jsTree で選択したノードのIDを取得するにはどうすればよいですか?

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);
}
24
murze

JsTreeのノードは、本質的にラップされたリストアイテムです。これにより、最初のものへの参照が取得されます。

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

ツリーへの参照がある場合は、$.tree.focused()を置き換えることができます。

IDを取得するには、最初に一致した要素を取得します

_if (n.length)
    id = n[0].id
_

または、セットの最初の要素で機能するjQuery attr関数を使用できます

_id = n.attr('id');
_
11
harpo

jstreeバージョン3.1.1では、get_selectedから直接取得できます。

$("#<your tree container's id>").jstree("get_selected")
11
tipycalFlow

JsTreeの最新バージョン(3.3.3でチェック)では、これを実行してIDの配列を取得できます。

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

これにより、たとえば、["selected_id1", "selected_id2", "selected_id3"]。選択されたnodes(IDではなく)を取得したい場合、これを行うことができます:

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

current docs に詳細が含まれています。

4
Peter Rankin

複数の選択があるツリーから選択したIDを取得する際に問題が発生していました。これは私がそれらを得た方法です:

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

選択したすべてのIDを取得するには、以下のコードを使用します

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

これで、選択されたすべてのIDが「selectedData」変数にあります

1
Ali

私の場合、データ呼び出しは機能しません。 attr関数を使用して、ノードデータにアクセスすることに成功しました。

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

使うだけ

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

どこ #FaqTreeViewは、jstreeを含むdivのIDです。

0

次のコードを使用できますvar nodes = $( "#jstree_demo_div")。jstree(true).get_selected( "full"、true); //選択されたノードのリスト

nodes [0] .id // Whichは、配列から最初のオブジェクトのIDを提供します

0
Arti Gaikwad
<script type="text/javascript>
    checked_ids.Push($(this).context.id);
</script>
0
harshboss

これらはすべて、古いバージョンの古い回答です。バージョン3.3.3以降、選択したノードのすべての属性を取得するために機能します。

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

IDが必要な場合は、最後に.idを追加します。上記のコードをコピーすると、Web開発者ツールの他のすべての属性を見ることができます。

0
Tom McDonough

場合やjstreeバージョンでは、このソリューションは機能しません。

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

定義された「id」の代わりに、何も得られません。私にとってトリックは何でしたか:

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

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>
0
Jamshid Hashimi