Я думаю, что ваши ссылки на this
запутаны. Если я правильно понимаю ваш вопрос, это должно сделать то, что вы хотите:
function levels() {
var $this = $(this); // Cache a reference to the element that was clicked
if ($this.is(':not(:checked)') { // Determine if the clicked element is checked
$(':input').each(function() { // Loop through every input element
// Here, 'this' is the current element in the loop and
// '$this' is the originally clicked element.
if (this.title === ('RQLevel' + $this.attr('src'))) {
$(this).removeAttr('checked');
}
});
}
}
Обновление:
Я должен был понять это раньше, но ваша основная проблема - использовать атрибут src
в качестве основы для вашего сравнения. Атрибут src
анализируется, поэтому при запросе его значение будет абсолютным URL-адресом. То есть вместо значения «2» у вас будет значение «http://example.com/2".». Итак, вы хотите использовать атрибут данных . пример.
Кроме того, вместо использования атрибута onclick
для регистрации обработчика событий я связал обработчик с помощью метода jQuery .bind () . Вот обновленный JavaScript:
$(function() {
$(':input').bind('click', function() {
var src = $(this).data('src');
if (!this.checked) {
$('input:checked').each(function(){
if (this.title === ('RQlevel' + src)) {
this.checked = false;
}
});
}
});
});