无法访问 SharePoint CAML 查询的多维数组元素

问题描述

我正在尝试创建一个多维数组来访问单个数组元素。

该数组是从一个三行两列(标题、网址)的列表中提取的。如果 cat 的变量设置为“cats”,那么我会得到包含列表中所有元素的单行数据的输出。按顺序输出并以逗号分隔如:Title[0][0],Url[0][1],Title[1][0],Url[1][1],Title[2][0],网址[2][1]。

如果我将cats设置为cats[0][0]和cats[0][1],我可以访问各个元素,但只能访问第一行。

但是,当我尝试通过执行cats[1][0],cats[1][1],cats[2][0] 或cats[2][1] 来访问第2 行或第3 行中的数组项时] 数组变为空。

有人能指出我正确的方向吗?

<script src="/Utilities/jquery.min.js"></script>
<p style="font-size:20px;" width="500px;" id="Ptask"></p>
<script>

SP.soD.executeOrDelayUntilScriptLoaded(retrivetasklistitems,'SP.js');


var colltaskListItem;
var listItemArray = [];
var cats = [];
var tasks;


        function retrivetasklistitems() {
            var clientContext = new SP.ClientContext.get_current();
            var oList = clientContext.get_web().get_lists().getByTitle('banner');
    
            var camlQuery = new SP.CamlQuery();
            camlQuery.set_viewXml(
                '<View><Query><Where><IsNotNull><FieldRef Name="Url"/></IsNotNull></Where></Query></View>'
            );

            this.colltaskListItem = oList.getItems(camlQuery);
            clientContext.load(colltaskListItem);

            /* execute the query to get the loaded items */
            clientContext.executeQueryAsync(
                /* onSuccess Function */ 
                Function.createDelegate(this,this.OnQuerySucceeded),/* onFail Function */ 
                Function.createDelegate(this,this.onQueryFailed)
            ); 
    
        }

        function OnQuerySucceeded(sender,args) {

            var count = 0; // for directory list
            var listItemEnumerator = colltaskListItem.getEnumerator();

            while (listItemEnumerator.moveNext()) {
                var oListItem = listItemEnumerator.get_current();
                var title = oListItem.get_item('Title');
                var url = oListItem.get_item('Url');


            var categories = [title,url];
                
            listItemArray[count] = new Array(2);
            for (var i = 0; i<listItemArray[count].length; i++) {

                if(categories[i] == null || categories[i] == undefined) {
                    listItemArray[count][i] = " ";
                } else {
                    listItemArray[count][i] = categories[i];
                }
            }
            count++;

            var cats = listItemArray

            tasks = "<p>" + cats[1][1] + "</p>" + "<br />";

            }
            $("#Ptask").html(tasks);
            }

            function OnQueryFailed(sender,args) {
                alert('Error: ' + args.get_message() + '\n' + args.get_stackTrace());
            }
</script

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...