jQuery $ (this) ссылается на документ HTML вместо элемента - PullRequest
0 голосов
/ 24 апреля 2011

Я пытаюсь прочитать значение rel элемента.

$('.input-default').ready(function()
{
    $('.input-default').inputDefault($(this).attr('rel'));
});

Но проблема в том, что $ (this) каким-то образом ссылается на весь HTML-документ. Зачем? И как мне исправить?

1 Ответ

4 голосов
/ 24 апреля 2011

Вы не активируете его в событии .ready() определенного элемента . Я думаю, что контекст в то время может быть окном. Просто обратитесь к входу напрямую.

$(document).ready(function() {
   var rel =  $('.input-default:first').attr('rel'); //added :first to make sure you only get the rel of the first
});

EDIT

Прочитав ваши комментарии и выполнив поиск, я понял, что вы используете плагин input default .

Глядя на его документацию, вы можете сделать следующее, чтобы получить то, что вы хотите

$(document).ready(function(){
   $('.input.input-default').inputDefault({defaultAttr: 'rel'});
});

Я не уверен, можно ли вызывать плагин так, как вы это делаете в своем коде, но если вы уверены, что этот метод работает, и вы хотите установить значение вручную, вы можете сделать следующее.

Чтобы перебрать коллекцию элементов DOM, вы можете использовать функцию .each().

$(document).ready(function(){
   $('.input-default').each(function(){
        $(this).inputDefault($(this).attr('rel'));
   });
});
...