Как изменить атрибут title элемента с помощью jQuery

У меня есть элемент ввода формы и вы хотите изменить его атрибут title. Это должно быть легко, как пирог, но по какой-то причине я не могу найти, как это сделать. Как это делается, и где и как я должен искать, как это сделать?

Ответ 1

Прежде чем писать какой-либо код, давайте обсудим разницу между атрибутами и свойствами. Атрибуты - это параметры, которые вы применяете к элементам разметки HTML; затем браузер анализирует разметку и создает объекты DOM различных типов, которые содержат свойства, инициализированные значениями атрибутов. На объектах DOM, таких как простой HTMLElement, вы почти всегда хотите работать со своими свойствами, а не с его набором атрибутов.

Нынешняя лучшая практика заключается в том, чтобы избежать работы с атрибутами, если они не являются обычаями или нет эквивалентного свойства для дополнения. Поскольку title действительно существует как свойство чтения/записи на многих HTMLElement s, мы должны воспользоваться им.

Подробнее о различиях между атрибутами и свойствами здесь или здесь.

Имея это в виду, позвольте манипулировать этим title...

Получить или установить свойство title элемента без jQuery

Так как title является общедоступным, вы можете установить его на любой элемент DOM, который поддерживает его с помощью обычного JavaScript:

document.getElementById('yourElementId').title = 'your new title';

Извлечение почти идентично; ничего особенного здесь:

var elementTitle = document.getElementById('yourElementId').title;

Это будет самый быстрый способ изменения названия, если вы оптимизирующий гайка, но так как вы хотели задействовать jQuery:

Получить или установить свойство title элемента с помощью jQuery (v1.6 +)

jQuery ввел новый метод в v1.6 для получения и установки свойств. Чтобы установить свойство title в элементе, используйте:

$('#yourElementId').prop('title', 'your new title');

Если вы хотите получить заголовок, опустите второй параметр и запишите возвращаемое значение:

var elementTitle = $('#yourElementId').prop('title');

Ознакомьтесь с prop() документацией по API для jQuery.

Если вы действительно не хотите использовать свойства или используете версию jQuery до версии 1.6, вы должны прочитать:

Получить или установить атрибут title элемента с помощью jQuery (версии < 1.6)

Вы можете изменить атрибут title следующим кодом:

$('#yourElementId').attr('title', 'your new title');

Или получить его с помощью:

var elementTitle = $('#yourElementId').attr('title');

Ознакомьтесь с attr() документацией по API для jQuery.

Ответ 2

В модальных диалоговых окнах jquery ui вам нужно использовать эту конструкцию:

$( "#my_dialog" ).dialog( "option", "title", "my new title" );

Ответ 3

Я верю

$("#myElement").attr("title", "new title value")

или же

$("#myElement").prop("title", "new title value")

должен сделать трюк...

Я думаю, что вы можете найти все основные функции в JQuery Docs, хотя я ненавижу форматирование.

Ответ 4

Другой вариант, если вы предпочитаете, - получить элемент DOM из объекта jQuery и использовать на нем стандартные DOM-аксессоры:

$("#myElement")[0].title = "new title value";

"Способ jQuery", как упоминалось другими, заключается в использовании метода attr(). См. Документацию API для attr() здесь.

Ответ 6

Если вы создаете div и пытаетесь добавить title к нему.

Пытаться

var myDiv= document.createElement("div");
myDiv.setAttribute('title','mytitle');