我有以下 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/