2015-03-18 3 views
-1

Я в процессе обучения jQuery, и мне интересно, почему моя таблица stylesheet возвращает значение undefined.Почему моя переменная не указана?

<head> 
    <meta charset=utf-8> 
    <title>jQuery Events</title> 
    <link rel="stylesheet" href="day.css"> 
</head> 
<body> 

<h1>My Website</h1> 


<button data-file="day">Day</button> 
<button data-file="night">Night</button> 



<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 

<script> 


(function() { 

    var link = $('link'); 

    $('button').on('click', function() { 
     var $this = $('this'), 
      stylesheet = $this.data('file'); 

     console.log(stylesheet); 

     link.attr('href', stylesheet + '.css'); 

    }); 

})(); 


</script> 

Все мои CSS и файлы прекрасно под контролем. И я не вижу никаких общих ошибок в пунктуации кода. Любая помощь будет принята с благодарностью!

спасибо.

+1

У вас нет элемента с именем тега 'this' (т. Е.' '). Следовательно, возврат коллекции с помощью '$ ('this')' пуст. Я предполагаю, что вы хотели передать элемент, к которому привязан обработчик, т. Е. '$ (This)'. –

+0

Спасибо, это имеет большой смысл! – Delto

ответ

2

Вместо того, чтобы писать $('this'), напишите $(this).

Смежные вопросы