Indeed $ is jQuery, the extra library you need to load

But..[drumroll] [Microsoft has mQuery](https://www.spcaf.com/blog/sp-context-dev-part-6-jquery-vs-sharepoint/)... so you do not need jQuery 

    var headline = m$(ctx.CurrentItem.Body)[0].textContent;

Or in native (modern browser) JavaScript:

    var headline = document.querySelector(ctx.CurrentItem.Body).textContent;

But... chicken/egg  

It won't work because the DOM element you want to get the text from does not exist (because this CSR code creates it)

The text you want is in the items ctx object:


If you call it for the whole Item:

    var headline = ctx.CurrentItem.Body; 

The above is tied to the Internal name;

If you call it for (any) one Description Column [as shown in the MSDN example](https://code.msdn.microsoft.com/office/Client-side-rendering-code-93e7077d) that internal name is declared in the ctx object:  
*and creates more generic/reusable code*

    var headline = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; 

FYI: This type of CSR development is a breeze with the free  [Chrome Browser Cisar Plugin](https://chrome.google.com/webstore/detail/cisar/nifbdojdggkboiifaklkamfpjcmgafpo?hl=en)