var inputs = document.getElementsByTagName("li");
for(var i = 0; i < inputs.length; i++)
{
if(inputs[i].id.indexOf(startsWith) == 0) {
eles.push(inputs[i].id);
}
}
for(var j=0; j < eles.length; j++) {
document.getElementById(eles[j]).setAttribute("class","jstree-checked");
}
我在我的文档的li
标签中取出以特定模式开头的ID
我正在更改生成的ID的li
标记的类
我还需要整体禁用li
标记中的内容
是否可以使用javascript或jquery执行此操作?
更新
我在每个<li>
标记内都有一个复选框和短信
需要禁用复选框(不可点击)并将文本显示为已禁用。
<li id="1_1" class="jstree-leaf jstree-no-icons jstree-last jstree-leaf jstree-unchecked" crawllocation="D:\company\deploy\AppServer\fusionEAR.ear" name="fusionEAR.ear">
<ins class="jstree-icon"> </ins>
<a class="" href="#" style="">
<ins class="jstree-checkbox"> </ins>
<ins class="jstree-icon "> </ins>
fusionEAR.ear
</a>
</li>
试过这些:
for(var j=0; j < eles.length; j++){
//jQV6('#jstreeDivforBrowse').jstree("check_node","#"+eles[j]);
document.getElementById(eles[j]).setAttribute("class","jstree-default jstree-checked");
//$.jstree._reference('#jstreeDivforBrowse').set_type("disabled", "#"+eles[j]); -- First try to disable
//eles[j].disabled = true;-- Second try to disable
//$("#"+eles[j]).attr('disabled', 'true');-- Third try to disable
//$("#"+eles[j]).addClass("jstree-leaf jstree-no-icons jstree-last jstree-leaf jstree-checked").find(":input").attr("disabled", "disabled");-- Fourth try to disable
}
在任何这些尝试中,我都无法找到我的复选框。但是,通过更改给定的循环内部的类名称,选中复选框的任务对于所需的ID是成功的。
答案 0 :(得分:2)
types plugin可用于自定义jstree中的节点。
types: {
"disabled": {
"select_node": false,
"open_node": false,
"close_node": false,
"create_node": false,
"delete_node": false
}
}
注意我们定义了Type
并将其命名为disabled
,因此我们将rel
属性disabled
添加到<li>
元素中禁用。这就是jsTree使用type
属性查找rel
的方式。
声明Type
,在你的循环中添加,
document.getElementById(eles[j]).setAttribute("rel","disabled");
我希望这会对你有所帮助。
答案 1 :(得分:0)
使用$("/* li element*/").attr("disabled", "disabled");
将其停用
或$("/* li element*/").hide();
隐藏它
在你的情况下
for(var j=0; j < eles.length; j++) {
$("#"+eles[j]).addClass("jstree-checked").find(":input").attr("disabled", "disabled");
}