У меня есть кнопка входа/выхода bootstrap3 в навигационной панели. Я хотел бы переключить текст и значок, когда нажимается кнопка.изменить текст и значок кнопки начальной загрузки при нажатии
Вот код Navbar:
<li><a id="login" class="showLogin" href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
Я нашел ниже код, и он прекрасно работает:
$('#login').on('click', function() {
var $el = $(this)
textNode = this.lastChild;
$el.find('span').toggleClass('glyphicon-log-out glyphicon-log-in');
textNode.nodeValue = ($el.hasClass('showLogin') ? ' Logout' : ' Login')
$el.toggleClass('showLogin');
});
Я ставлю этот код в функцию, но я получаю сообщение об ошибке:
"Невозможно установить свойство 'nodeValue' неопределенных"
Вот код:
function change_login_button(){
var $el = $('#login')
textNode = $el.lastChild
$el.find('span').toggleClass('glyphicon-log-out glyphicon-log-in');
textNode.nodeValue = ($el.hasClass('showLogin') ? ' Logout' : ' Login')
$el.toggleClass('showLogin');
}
Проблема, кажется, разница между сделать это:
var $el = $(this)
и это:
var $el = $('#login')
Может кто-нибудь сказать мне, что я делаю неправильно, или если есть более простой способ переключить кнопку навигационной кнопки загрузки?
переменной «textNode» не определяется как переменная в первую очередь: var textNode = $ el.lastChild; –
Я не вижу, как это изменит ситуацию. – user3101337
, потому что вы используете переменную без определения ее как переменной. –