#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
атрибута из исходного текстового поля, чтобы я мог установить его в качестве значения параметра TagEditorplaceholder
.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') });
});