Я пытаюсь добавить класс к элементу h1 на основе текста, который находится внутри элемента h1.jQuery addClass to h1
var title = $("h1").text();
if (title == "Welcome") {
$("h1").addClass("hide");
}
Я пытаюсь добавить класс к элементу h1 на основе текста, который находится внутри элемента h1.jQuery addClass to h1
var title = $("h1").text();
if (title == "Welcome") {
$("h1").addClass("hide");
}
Я предлагаю:
$('h1').addClass(function(){
return $(this).text() == 'Welcome' ? 'hide' : '';
});
Или, чтобы уменьшить ненужные вызовы JQuery:
$('h1').addClass(function(){
return (this.textContent || this.innerText) == 'Welcome' ? 'hide' : '';
});
И я может было несколько минут, чтобы убить, что привело к этому JavaScript Альтернативой равнине:
Object.prototype.textToClass = function(needle,classToAdd){
var len = this.length,
classes = [],
txt;
for (var i=0; i<len; i++){
txt = this[i].textContent || this[i].innerText;
if (txt == needle){
classes = this[i].className.split(/\s/);
classes.push(classToAdd);
this[i].className = classes.join(' ');
}
}
return this;
};
document.getElementsByTagName('h1').textToClass('Welcome','hide');
Ссылки:
Спасибо! Это сработало отлично. У меня есть пара вопросов. Какова цель "?" и пустой? – brandozz
Добро пожаловать! Что касается '?' И таких, см. Ссылки, посмотрите на условный/тернарный оператор в ссылках. –
JQuery не загружен в этой скрипке.
Также вы не заворачиваете свой код в функцию document.ready()
, поэтому существует риск, что он не может быть выполнен так, как вы хотите. Не забудьте выбрать jQuery из раскрывающегося списка «Frameworks & Extensions» справа. Кроме того, всегда помните, чтобы проверить консоль вашего браузера, чтобы увидеть, есть ли ошибки, это хорошая проверка правильности таких вещей. Случается со мной все время:)
JS
$(function(){
var title = $("h1").text();
if (title === "Welcome") {
$("h1").addClass("hide");
}
}); // end ready
Хорошо, добавил jQuery к скрипке, и теперь он работает. У меня есть документ document.ready в коде на моей локальной машине, должно быть что-то не так с моим jquery локально. – brandozz
Является ли ваша консоль локальными локальными ошибками? Вы пытались удалить все другие JS и просто использовать ваш снимок? –
Вы забыли добавить jQuery или Zepto. – jantimon
http://jsfiddle.net/Palestinian/4LjnT/3/, как сказал @jantimon. – Omar