javascript - 循环遍历 jstree 以搜索节点 id 的所有出现,然后更改这些节点的类

标签 javascript jquery jstree

我有以下 javascript 代码,它更改 jstree 中每个选定节点的类(<ins> 标记):

   $j("#actionButton1").click(function() {

      $j.each($j("#demo2").jstree("get_selected"), function(index, element) {

      alert($j(element).attr('id'));

      var sub_id = $j(element).attr('id'); //node id is stored in the varialble sub_id

      $j("#"+sub_id+" ins:eq(1)").attr("class","jstree-icon2"); // set class to display new icon

   });//end of selected nodes loop
});

上面的代码工作正常,除了一件事,如果选定的 sub_id 存在于树中的多个位置,则显示新图标的类似乎不起作用。

我相信我已经循环遍历 jstree 来搜索 sub_id 的所有出现,然后将新类关联到节点。

任何关于如何做到这一点的提示都是非常受欢迎的。

非常感谢。

最佳答案

当您使用 # id 选择器时,它只会返回第一个元素。将 sub_id 添加到名称或类属性应该可以帮助您解决问题。正如我在评论中提到的,id 属性在页面上应该是唯一的。

如果您想将该类应用于所有匹配元素而不仅仅是第二个元素,您还需要从选择器中删除 :eq(1):eq 接受基于 0 的索引。

编辑

您的新选择器:

$j("your-element[name='"+sub_id+"' ins").attr("class","jstree-icon2");

关于javascript - 循环遍历 jstree 以搜索节点 id 的所有出现,然后更改这些节点的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8010636/

相关文章:

javascript - 如何使用 officejs api 在 MS Word 中重新加载页眉和页脚

javascript - 提示和阻止用户离开/关闭页面

javascript - 将 `Object.defineProperty` 与 RangeError 一起使用

jquery - 如何使用 jQuery SVG 插件设置 SVG 矩形元素的背景图像?

javascript - 为什么 CSS 选择器返回一个元素数组?

带有 dnd 插件的 JsTree,总是复制

javascript - jstree 从树中获取新的 json 数据

javascript - jsTree:progressive_render 与数组中的 ajax/render 节点

javascript - 使用 jquery 创建内联更新字段

jQuery anchor 点击, "this", "e.target"- 返回 url