web-dev-qa-db-ja.com

選択したNodeをjstreeから取得します

選択した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つ(たとえば、ツリーの最後のノード)を選択しても、ノードのリスト全体が表示されます。私が何か間違ったことをしているところがあれば教えてください。

7
Cristian

<li>ノードごとにクラス 'jstree-clicked'を割り当てる必要はないと思います。そして、jstreeバインディングに使用したjstreeコンテナを使用して選択したノードを取得します。

console.log($("#divtree").jstree("get_selected").text());
13
Murali Mopuru

より多くの人が私のコメントが役に立ったと思ったので、私はそれを答えに変換しました。ムラリの答えのおかげで、問題を解決することができました。このコード:

$("#divtree").jstree("get_selected",true)

完全なオブジェクトを返します。 (真のパラメーターを見てください)

7
Maarten Kieft

var data = $(yourtree).jstree().get_selected(true)[0].text;

console.log(data);

これは私にとってはうまくいきます。試してみます!

6
Evan Lalo

これを試して:

var CurrentNode = $("#divtree").jstree("get_selected");
console.log($('#'+CurrentNode).text());
3
user3608059