Получение атрибута элемента, привязанного к плагину jQuery

#javascript #jquery #jquery-plugins

#javascript #jquery #jquery-плагины

Вопрос:

Я использую плагин jQuery TagEditor, и у него есть параметр, в который вы можете ввести заполнитель; однако я не особенно хочу жестко кодировать это с помощью кода JS, я бы предпочел, чтобы он динамически получал значение через атрибут actual fields placeholder .

Мне удалось заставить это работать с помощью:

 $('#tags').tagEditor({
    placeholder: $('#tags').attr('placeholder'),
});
  

Однако, опять же, я бы предпочел не жестко кодировать идентификатор элемента в том месте, откуда он получает заполнитель, на случай, если я добавлю дополнительный селектор.

Я пытался использовать $(this) его, но, похоже, он не работает (нет значения); например:

 $('#tags').tagEditor({
    placeholder: $(this).attr('placeholder'),
});
  

…выдает пустое значение.

Есть ли какой-либо способ получить значение без жесткого кодирования в элементе, из которого я хочу его получить?

Комментарии:

1. ваш код заменяет заполнитель самим собой? в чем смысл?

2. Что вы имеете в виду? #tags является id исходным текстовым полем , к которому я привязываю TagEditor; Я пытаюсь получить значение placeholder атрибута из исходного текстового поля, чтобы я мог установить его в качестве значения параметра TagEditor placeholder .

3. понял, просто никогда не видел TagEditor

Ответ №1:

Попробуйте что-то вроде этого:

 $('#tags').each(function(){    
  $(this).tagEditor( {  placeholder: $(this).attr('placeholder') } ); 
});
  

Если вы беспокоитесь о производительности из-за each , вот альтернатива

 $.fn.myTagfunc = function(callback){
  callback.apply(this);
  return this;
};

$(selector).myTagfunc( function(){ 
     $(this).tagEditor({placeholder:$(this).attr('placeholder') });   
});