我正在尝试在Sharepoint 2013的安装上部署bxslider Jquery图像滑块库,我需要帮助解决我的JQuery代码问题。
我正在尝试做的事情:访问用户提交的新闻文章列表,这些新闻文章可能附有图片,也可能没有附加图片,并在bxslider上一次运行批准状态为“已批准”的文章。
发生了什么:bxslider正在查找列表,它正在查找文章,但我正在尝试阅读的大部分信息都会返回“未定义”。目前我得到的只是文章标题。
我还需要获取文章的发布日期(存储在名为“Date”的列表列中),作者姓名(在“articleAuthor”栏中)和文章的实际文本(在“文章文本”栏中 - 空格包含在列名中。)
这是我的代码:
$(document).ready(function() {
try {
$().SPServices({
operation: "GetListItems",
async: false,
//Setup Caml query for all approved news articles, allow for the possiblity of attachments
CAMLQueryOptions: "<QueryOptions><IncludeAttachmentUrls>True</IncludeAttachmentUrls></QueryOptions>",
CAMLQuery: "<Query><Where><Eq><FieldRef Name='_ModerationStatus' /><Value Type='ModStat'>Approved</Value></Eq></Where></Query>",
listName: "project1News",
completefunc: function (xData, Status) {
//alert(Status);
var count = 0;
$(xData.responseXML).SPFilterNode("z:row").each(function() {
count++;
var image= $(this).attr("ows_Attachments") != '0' ? $(this).attr("ows_Attachments") : '';
var title = $(this).attr("ows_Title");
var date = $(this).attr("ows_Date");
var author = $(this).attr("ows_articleAuthor");
var article = $(this).attr("ows_Article Text");
//Setup article list item
$('.bxslider').prepend('<li><div class="newsWrapper">'+
'<table cellpadding="10"><tr><td width="400" valign="top">'+
'<a href="' + image + '" data-lightbox="image-' + count + '"><img src="' + image + '" alt="NewsImage"/></a>'+
'</td><td width="640" valign="top" cell-padding="10"><h3 class="newsTitle">'+ title +'</h3>'+
'<h3 class="newsAuthor">Posted ' + date + ' by ' + author + '</h3>'+
'<h3 class="newsBody">'+ article + '</h3></td></tr></table></div></li>');
});
}
});
}
catch (err) {
alert("Something failed: " + err.message);
}
});
实际执行滑块的Jquery命令存储在实际包含滑块的webpart的代码文件中。
最后,为了记录,我在我的webpart代码中引用了以下JQuery库:
jquery 1.8.2(也试过1.10.2 - 没有变化)
bxslider.min.js - BX Slider Jquery Library
jquery.SPServices-2014.01.min.js - 一个JQuery库“旨在使Sharepoint上的JQuery更容易。”哈,我说。
SP.js,通过服务器令牌。
这是我的级别之上的JQuery,我需要我能得到的所有帮助。我刚刚开始学习Sharepoint,所以我可能在这段代码中遇到了很多新手的错误。在此先感谢您的帮助。
答案 0 :(得分:0)
我认为您在其余调用中缺少一个选项来获取特定字段。我相信标题和ID会自动生效,这可以解释为什么其余部分未定义。
CAMLViewFields: "<ViewFields><FieldRef Name='ColumnA' /><FieldRef Name='ColumnB' /></ViewFields>"