В общем, в этот вашем jsfiddle.net (
и в ваших интернетах в принципе), в окне javascript, слева-вверху есть опции «
JavaScript + No-Library (pure JS)».
Там стоит Load Type -
On load или
On DOM ready.
Это значит, что весь JS, который написан в этом окне, находится внутри функции.
Что-то вроде этого:
window.addEventListener('load', function(){
// ваш код
})
И так как вы объявляете функцию
showtext внутри другой функции, ваша функция является локальной — её не видно извне.
Решения два(или шесть, не уверен):
1. Вместо атрибута onclick(onchange не работает на div'ах), вы можете написать в JS-код это:
document.getElementById('primer2').addEventListener('click', showtext)
2. Вверху-справа, в опциях LOAD TYPE выбрать
Nowrap - bottom of <body>
(эти типо расположит весь JS в самом конце содержимого body, без обёртывания в анонимную функцию)