Read a SharePoint list using JavaScript

There are countless ways to read data from a SharePoint list, and also myriad methods to do this in JavaScript, but I’m going to document this one way as a place to get started, and a published function I can refer back to if needed!

First consider the following: Reading SharePoint list data using JavaScript requires the SP.js file to be loaded already. So, we should be putting this function inside of a $(document).ready(function())}; and if needed inside an ExecuteOrDelayUntilScriptLoaded(functionName, ‘sp.js’); Once in there, it would look something like this:

function readFromList() {
    var query = new SP.CamlQuery();
    var clientContext = SP.ClientContext.get_current();
    var oList = clientContext.get_web().get_lists().getByTitle('List Name');
    var items = oList.getItems(query);
    clientContext.executeQueryAsync(function () {
        if (items.get_count() > 0) {
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
                var listItem = enumerator.get_current();
                var field = listItem.get_item('Field Name');
    }, function(sender, args) {

I’ll go over each line to explain what’s happening:
var query = new SP.CamlQuery(); – this is preparing a CamlQuery object using SP.js (which is why it’s important to wait for it to be loaded!)
query.set_viewXml – Here’s where you define your CAML query using normal CAML syntax. In the above scenario, it will return the Title field from all items in the list.
var clientContext = SP.ClientContext.get_current(); – this establishes a client context object using the current Site Collection.
var oList = clientContext.get_web().get_lists().getByTitle(‘List Name’); – this creates an object that references the specific list in the specific web you wanted to pull items from.
var items = oList.getItems(query); – this is saying get the items from the list object based on the query defined above.
clientContext.load(items); – you’re now telling the object model to prepare to execute the following object by loading it into the client context.
clientContext.executeQueryAsync – ok, here you actually execute the query you so dutifully prepared just a moment ago. This operation expects a “Success” function and a “Failed” function to be passed in or referred to somehow. The success function will be what you want to do once the query is done executing. The failed function will be how you want to handle any issues.

In the above example, the success function looks like this:

if (items.get_count() > 0) {
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
                var listItem = enumerator.get_current();
                var field = listItem.get_item('Field Name');

What this is doing is looping through the results of the query and reading each one. The key is, to read a field value the syntax is listItem.get_item(‘Field Name’). Again, lots of ways to read field data, especially system fields like ID, this is just one example.

To handle errors I simply have whatever the error message is log to the console. At this point you can do what you like with the resulting data: put it in a string array and read it later, push it out to the page, make decisions based on the results, etc. Hope this helps!

Short URL:

Eric Oszakiewski

Eric Oszakiewski is a professional software developer based in Scottsdale, AZ with over 36 years of IT experience, and 19 years Native American Gaming experience. He is currently working as a Sr .Net/SharePoint Development Lead for General Motors, and also as a consultant.

More Posts

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

2 thoughts on “Read a SharePoint list using JavaScript”

  1. Thank you Eric!

    I am giving myself a crash-course in caml using javascript for a project here at work, and have increased my knowledge tremendously due to sites like yours. I am still trying to find more comprehensive material, and I hope to find more articles/posts like this on yours to further my knowledge. I have been writing all of my code by hand, yet some of the sites that I have seen the authors are using a tool with intellisense: Would that be the SharePoint Designer?

    Have a Great Day!

    1. Sorry for the delayed response. SharePoint designer is a good “power user” tool for managing SharePoint sites and customizations, but there unfortunately isn’t anything like intellisense in the application. For customizing SharePoint with JS, HTML and CSS I use a mix of SPD, Visual Studio Code and Notepad++. That’s my personal choice, depending on the nature of the request.

Leave a Reply