如何使用新的 HTML 数据重绘我的 jstree?

How can I redraw my jstree with new HTML data?

我有一个类别列表,具体取决于 selected 的出版物。我想根据出版物 selected.

重新绘制我的类别树

每次我 select 一个新的发布时,我都会从服务器检索新的 html。

我的 HTML 看起来像这样:

<ul>
   <li id="27">
      Moto
      <ul>
         <li id="30">Route</li>
      </ul>
      <ul>
         <li id="31">Cross</li>
      </ul>
   </li>
</ul>
<ul>
   <li id="28">
      Limousine
      <ul>
         <li id="32">3 Portes</li>
      </ul>
      <ul>
         <li id="33">5 Portes</li>
      </ul>
   </li>
</ul>
<ul>
   <li id="36">Avis Mortuaire</li>
</ul>
<ul>
   <li id="49">
      Stellen
      <ul>
         <li id="71">Stellengesuche</li>
      </ul>
      <ul>
         <li id="72">Stellen</li>
      </ul>
      <ul>
         <li id="73">Stellenangebote</li>
      </ul>
   </li>
</ul>
<ul>
   <li id="48">
      Diverses
      <ul>
         <li id="62">Diverses</li>
      </ul>
      <ul>
         <li id="68">Lebenshilfe</li>
      </ul>
      <ul>
         <li id="69">Bekanntschaften</li>
      </ul>
      <ul>
         <li id="70">Direktverkauf/Fabrik-Läden</li>
      </ul>
   </li>
</ul>
<ul>
   <li id="105">Editorial-Anzeige</li>
</ul>

然后我尝试执行 jq11.jstree.reference('categoryTree').redraw(true) 但出现错误 Uncaught TypeError: Cannot read property 'className' of undefined

所以我想知道如何使用更改出版物时插入的新 html 重绘我的 jstree?

谢谢

好吧,我终于找到了一种方法来销毁旧的 DOM 和实例 $.jstree.destroy ()

所以我只是这样做 $.jstree.reference('categoryTree').destroy(); 然后重建我的 DOM $('#categoryTree').html(...); 然后我重新创建我的 jstree 实例 $('#categoryTree').jstree({...})

我希望这会对其他人有所帮助。