選択したNodeをjstreeから取得しようとしています。
これはビューのコードです
<div id="divtree" >
<ul id="tree" >
@foreach (var m in Model.presidentList)
{
<li class="jstree-clicked">
<a href="#" class="usr">@m.Name</a>
@Html.Partial("Childrens", m)
</li>
}
</ul>
</div>
これは、ノードの名前を取得しようとするjavascriptの部分です。
$(".jstree-clicked").click(function (e) {
var node = $(this).jstree('get_selected').text();
alert(node);
});
選択したノードのみを取得するのに問題があります。子の1つ(たとえば、ツリーの最後のノード)を選択しても、ノードのリスト全体が表示されます。私が何か間違ったことをしているところがあれば教えてください。
<li>ノードごとにクラス 'jstree-clicked'を割り当てる必要はないと思います。そして、jstreeバインディングに使用したjstreeコンテナを使用して選択したノードを取得します。
console.log($("#divtree").jstree("get_selected").text());
より多くの人が私のコメントが役に立ったと思ったので、私はそれを答えに変換しました。ムラリの答えのおかげで、問題を解決することができました。このコード:
$("#divtree").jstree("get_selected",true)
完全なオブジェクトを返します。 (真のパラメーターを見てください)
var data = $(yourtree).jstree().get_selected(true)[0].text;
console.log(data);
これは私にとってはうまくいきます。試してみます!
これを試して:
var CurrentNode = $("#divtree").jstree("get_selected");
console.log($('#'+CurrentNode).text());