循环jstree以搜索节点id的所有出现,然后更改这些节点的类
loop through jstree to search for all occurences of a node id and then change the class of those nodes
我有以下javascript代码,它更改了jtree中每个选定节点的类(<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存在于树中的多个位置,则显示新图标的类似乎不起作用。
我相信我已经通过jtree循环搜索所有出现的sub_id,然后将新类关联到节点。
任何关于如何做到这一点的提示都是非常欢迎的。
当你使用# id选择器时,它将只返回第一个元素。将sub_id添加到名称或类属性中应该可以帮助您解决问题。正如我在评论中提到的,id属性在页面中应该是唯一的。
如果您希望将类应用于所有匹配元素而不仅仅是第二个元素,则还需要从选择器中删除:eq(1)
。:eq
接受基于0的索引
编辑
你的新选择器:
$j("your-element[name='"+sub_id+"' ins").attr("class","jstree-icon2");
尝试直接引用节点,而不是使用ID作为选择器:
$j('#actionButton1').click(function() {
$j.each($j('#demo2').jstree('get_selected'), function(index, element) {
$j('ins:eq(1)', element).addClass('jstree-icon2');
});
});
如上所述,id应该是唯一的。
我希望这对你有帮助!
相关文章:
- 节点导出返回一个空对象
- 可以前端maven插件使用节点,npm已经安装
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 在jstree中,如何将指定的节点集中到大型树上
- Javascript运行php文件,然后下载文件
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 在每个循环上完成异步调用,然后转到下一个节点 js
- 如何使用vanillaJS将mp4视频插入到具有特定维度的html文档中,播放2秒,然后删除节点
- Metor:将html保存为字符串,然后将其转换为DOM节点
- 节点 - MySQL 查询,需要几分钟时间,在几分钟后重复自己,然后完成原始查询
- 剑道树,从多个节点开始,然后动态加载其余节点
- 节点.js如何读取文件,然后使用两个单独的函数写入相同的文件
- 如何在一个节点包中创建一个AngularJs指令,然后将它包含在应用的另一个节点包中
- 执行一些代码,然后进入交互式节点
- 循环jstree以搜索节点id的所有出现,然后更改这些节点的类
- 如何在ie8 +中从对象中选择节点,然后将这些节点重新定位到我的文档中?
- 如何从xml节点动态创建php页面,然后链接到该页面-simplexml-php
- 从xml节点检索所有子节点的值,然后对每个子节点应用javascript函数
- 如何重定向然后在节点.js中停止