24

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);
}
4

14 に答える 14

97

harpoのソリューションを機能させることができず、内部jsTree関数を使用するため、Olivierのソリューションを使用したくないので、別のアプローチを考え出しました。

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

とても簡単です。このget_selected関数は、選択されたリスト項目の配列を返します。その配列で行う場合.attr、jQueryはリストの最初の項目を調べます。複数選択のIDが必要な場合は、代わりに配列として扱います。

于 2011-07-13T03:10:56.670 に答える
11

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

$("#<your tree container's id>").jstree("get_selected")
于 2015-07-09T17:08:04.780 に答える
11

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');
于 2010-04-06T14:28:17.437 に答える
3
  $.jstree._reference('#my_tree_container')._get_node(null, true).each(function() {
    id = $(this).attr("id");
    alert('Id selected: ' + id);        
  });
于 2011-04-18T18:47:53.700 に答える
1

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

$("#tree").jstree("get_selected").attr("my-data-name");
于 2013-07-31T09:49:45.537 に答える
1

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

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

これで、選択したすべての ID が「selectedData」変数に含まれるようになりました

于 2017-06-16T15:32:23.093 に答える
0

場合によっては、および/または jstree のバージョンによって、このソリューションが機能しないことがあります。

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

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

$("#tree").jstree("get_selected").toString();
于 2016-09-06T04:41:19.297 に答える
0

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>
于 2012-06-28T05:39:13.497 に答える
0

使うだけ

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

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

于 2016-06-07T21:41:18.280 に答える
0
<script type="text/javascript>
    checked_ids.push($(this).context.id);
</script>
于 2013-11-11T09:50:59.390 に答える