Удалить подсказку тега заголовка - PullRequest
4 голосов
/ 07 июля 2011

Есть ли способ удалить всплывающую подсказку из атрибута title без фактического удаления заголовка.

У меня есть ссылка с таким атрибутом заголовка, как этот

<a href="url" title="anotherURL"></a>

Важно, что заголовок не поврежден, так как мне нужно прочитать оттуда URL.Все исправления, которые я нашел, - это удалить атрибут title и использовать его повторно, но в этом случае это невозможно.

Есть идеи?

Ответы [ 3 ]

11 голосов
/ 07 июля 2011

это все о браузере. Это браузер , который видит title как всплывающую подсказку, исходя из спецификаций и интерпретаций браузера.

вам следует использовать, если вы хотите обрабатывать такие данные, HTML5способ (который можно использовать в любом другом типе документа, поскольку он игнорируется) и использовать:

<a href="url" data-title="anotherURL"></a>

с атрибутами data-, подсказка не будет, так как title не используется,и вы можете легко получить это, используя:

$("a").attr("data-title")

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

вы можете легко конвертироватьвсе title в data-title и очистить заголовок, используя

$("a").attr("data-title", function() { return $(this).attr("title"); } );
$("a").removeAttr("title");

(весь код должен использоваться с jQuery Framework )

3 голосов
/ 07 июля 2011

Поскольку вы не пометили этот вопрос как , я предполагаю, что вы будете открыты для решения на чистом JavaScript?

Следующие работы (в Ubuntu 11.04) в Firefox 5, Chromium 12 и Opera 11, я не могу проверить в IE, но, поскольку я использую querySelectorAll(), я подозреваю, что это не будет работать , если вообще. Однако:

var titled = document.querySelectorAll('[title]'); // gets all elements with a 'title' attribute, as long as the browser supports the css attribute-selector
var numTitled = titled.length;

for (i=0; i<numTitled; i++){
    titled[i].setAttribute('data-title',titled[i].title); // copies from 'title' to 'data-title' attribute
    titled[i].removeAttribute('title'); // removes the 'title' attribute
}

JS Fiddle demo .

<ч />

Ссылки:

0 голосов
/ 07 июля 2011

Почему бы вам не использовать jQuery для перемещения этой информации из title в элемент data.

Запустите это при загрузке элемента:

$(el).data('url', $(el).attr('title')).attr('title', '');

И затем прочитайте URL какthis:

$(el).data('url');

Переменная el здесь DOM-элемент или селектор элемента.

...