2016-03-22 10 views
0

Was ist falsch an meinem Code?jQuery .addClass() verursacht Fehler bei Schaltflächenelementen

var $slider = $('#gallery-slider'); 
$slider.addClass('someClass') //works fine 
var $buttons = $('.btn-controls'); 
var $active_btn = $buttons[1]; 
alert($active_btn); // alert 'object HTMLButtonElement' i.e. element has been taken correctly 
$active_btn.addClass('someClass') //causes en error '$active_btn.addClass is not a function' 
+2

'var $ active_btn = $ Tasten [1] zu konvertieren;' gibt ein DOM-Element Referenz, 'var $ active_btn = $ buttons.eq (1);' –

+4

anstelle von '$ active_btn.addClass ('someClass')' benutzen '$ ($ active_btn) .addClass ('someClass')' –

+0

vielen Dank hilft –

Antwort

2

$buttons[1]; kein Jquery-Objekt zurück, so dass Sie nicht jquery Methoden durch sie aufrufen kann.

Entweder verwenden

$buttons.addClass("someClass") //if you want to add class to all buttons 

oder

$buttons.eq(1).addClass("someClass") //if you want to add class to second element in the list of buttons 
0

Reinigen Sie den Code mit dem richtigen Semikolon s, und ..... Sie haben eine jQuery object passieren Klasse zu ändern. Verwenden Sie die eq()selector:

var $slider = $('#gallery-slider'); 
$slider.addClass('someClass'); //works fine 
var $buttons = $('.btn-controls'); 
var $active_btn = $('.btn-controls').eq(1); 
alert($active_btn); // alert 'object HTMLButtonElement' i.e. element has been  taken correctly 
$active_btn.addClass('someClass'); //causes en error '$active_btn.addClass is not a function' 
0

Als @Kartikeya Khosla sagte, das HTML-Objekt zu Objekt jquery

$($active_btn).addClass('someClass') 
Verwandte Themen