gpt4 book ai didi

jquery - 获取jstree已检查的节点ID列表

转载 作者:行者123 更新时间:2023-12-01 04:52:10 26 4
gpt4 key购买 nike

我是 jstreejQuery 的新手,在测试树中的节点检查方面遇到了一些问题。

用户应该首先检查他需要的节点,然后单击“Summary”按钮以在警报窗口中获取已检查节点的 ID 列表。我还想导出 ID 列表,以便在 cgi 文件 中进一步使用。

这是我的代码:

<!doctype html>
<html>
<head>
<title>jstree test</title>
</head>
<body>
<div id="testtree">
<ul>
<li id="1" title="ID:1"><a>Fruits and Vegetables</a>
<ul>
<li id="11" title="ID:11"><a>Fruit</a>
<ul>
<li id="111" title="ID:111"><a>Apple</a></li>
<li id="112" title="ID:112"><a>Banana</a></li>
</ul>
</li>
<li id="12" title="ID:12"><a>Vegetables</a>
<ul>
<li id="121" title="ID:121"><a>Zucchini</a></li>
<li id="122" title="ID:122"><a>Tomato</a>
<ul>
<li id="1221" title="ID:1221"><a>Red Tomato</a></li>
<li id="1222" title="ID:1222"><a>Green Tomato</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<button>Summary</button>
<script type="text/javascript" src="_lib/jquery.js"></script>
<script type="text/javascript" src="jquery.jstree.js"></script>
<script>

$(document).ready(function() {

var checked_ids = []; // list for the checked IDs

$("#testtree").jstree({
"plugins" : [ "themes", "html_data", "checkbox", "ui" ]
});

})

var button = document.querySelector( "button" );

// If the user clicks on the button, show him the IDs of the checked fruits/vegetables:
button.addEventListener( "click", function( ev ) {
alert( "Your Selection: ");
}, false);

</script>
</body>
</html>

有什么建议我可以做到这一点吗?

更新1:

我尝试使用其他帖子中 Brad 的解决方案,但我仍然无法使其工作,因为我不知道如何将 ID 添加到数组中。

这是我的新代码:

<script>

var checked_ids = [];

$(document).ready(function() {

$("#testtree").jstree({
"plugins" : [ "themes", "html_data", "checkbox", "ui" ]
});

// How do I add the IDs to the array?
$("#testtree").jstree('get_selected').attr('id')

})

var button = document.querySelector( "button" );

// If the user clicks on the button, show him the IDs of the checked fruits/vegetables:
button.addEventListener( "click", function( ev ) {
alert("Your Selection: "+ checked_ids.join("\n"));
}, false);

</script>

如有任何帮助,我们将不胜感激。

更新2:

数组仍然没有被填充:

<button>Summary</button>
<script type="text/javascript" src="_lib/jquery.js"></script>
<script type="text/javascript" src="jquery.jstree.js"></script>
<script>

$(document).ready(function() {

$("#testtree").jstree({
"plugins" : [ "themes", "html_data", "checkbox", "ui" ]
});

var arr = new Array();

$("#testtree").jstree('get_checked').each(function(index) {
arr.push($(this).attr('id'));
});

var button = document.querySelector( "button" );

button.addEventListener( "click", function( ev ) {
alert("Your Selection: "+ arr.length + " " + arr[0] + " " + arr[1]);
}, false);

})
</script>

最佳答案

问题出在这个地方.attr('id')。它仅返回第一个 id。您应该使用each()来填充您的数组:

var arr = new Array();
$("#testtree").jstree('get_selected').each(function(index) {
arr.push($(this).attr('id'));
});

更新:

选定的项目是您选择/突出显示的项目。您需要检查的项目。所以代码将是

var arr = new Array();
$("#testtree").jstree('get_checked').each(function(index) {
arr.push($(this).attr('id'));
});

我创建了一个 jsfiddle http://jsfiddle.net/J5ZaK/123/

关于jquery - 获取jstree已检查的节点ID列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18355420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com