2015-12-09 3 views
0

Я пытаюсь добавить класс в div, используя атрибут title. В настоящее время предупреждение является правильным. Однако класс не добавляется.Как использовать атрибут title div для добавления класса?

JS Часть:

function index(clicked_id){ 
    alert(clicked_id); 
    $('#sticky').attr("title", +clicked_id).addClass("glow"); 
} 

HTML Часть:

<div id="sticky" class="" title='sticky1' onclick='index(this.title)'</div>" 
+0

Лучше использовать 'data-attribute', чем 'title' –

ответ

2

Я не знаю, если я получил свой вопрос прямо, но я понял, что вы хотите отфильтровать | найти вас Div по названию , Так что, может быть, этот код поможет вам:

function index(clicked_id){ 
    alert(clicked_id); 
    $('#sticky [title="' + clicked_id + '"]').addClass("glow"); 
} 
+0

Пробел между' #sticky [title = "'' указывает потомка '# sticky'? – guest271314

+0

да! вы также можете использовать '>', чтобы сказать, что это первые глубокие потомки. – thiagoh

+0

. Селектор в опубликованном решении не ссылается на элемент '# sticky'. 'js' at Question возвращает ожидаемые результаты. 'html' отсутствует'> 'at' # sticky' tag – guest271314

0

Вместо просто передать this:

onclick='index(this)' 

теперь функции:

function index(el){ 
    var e = $(el).attr('title'); 
    $('#sticky[title="'+e+'"]').addClass("glow"); 
} 

Как сам элемент является целевой один, то просто использовать это:

function index(el){ 
    $(el).addClass("glow"); 
} 

или лучше пойти ненавязчивым, удалить встроенный обработчик событий и использовать этот способ:

$('#sticky').on('click', function(e){ 
    $(this).addClass("glow"); 
}); 
0

Почему вам нужно сделать, это так? Не можете ли вы просто установить класс на элемент, который нажал?

JavaScript

function index(el){ 
    $(el).addClass("glow"); 
} 

HTML

<div id="sticky" onclick='index(this)'></div> 
+0

приятная копия. я бы сказал. – Jai

+0

Вы не написали последнюю часть своего ответа, когда я это написал. – Arg0n

0

js на Вопрос возвратов ожидаемых результатов. Отсутствует закрытие > на html#sticky<div> тег в

onclick="index(this.title)" 

onclick следующий атрибут. Кроме того,

+ 

должны быть удалены в

+clicked_id 

в .attr() установки title.javascript+ оператор пытается преобразовать clicked_idString к Number, когда поставил перед строкой

function index(clicked_id){ 
 
    alert(clicked_id); 
 
    $('#sticky').attr("title", clicked_id).addClass("glow"); 
 
    
 
}
.glow { 
 
    color: purple; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 
<div id="sticky" class="" title="sticky1" onclick="index(this.title)">click</div>

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