Claro que está indefinido. Piensas que this en ese contexto se refiere al elemento <p>, pero en realidad, se refiere al objeto window. Para que this sea el elemento <p>, debes pasarselo como parámetro a la función ya que la invocación está en línea o registrar el evento con addEventListener. Todo esto se explica
aquí
Código Javascript
:
Ver original<!DOCTYPE html>
<html dir="ltr" lang="es-es">
<head>
<title></title>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=yes, width=device-width, initial-scale=1">
<style>
</style>
<script>
function anyadir(elem){
console.log(this);
console.log(this.parentNode);
console.log(elem);
}
</script>
</head>
<body>
<p class='url' onclick="anyadir(this)">Pulsa aquí para proceder</p>
<p class='url2'>Pulsa aquí para proceder 2</p>
<script>
document.querySelector('.url2').addEventListener('click', anyadir, false);
</script>
</body>
</html>