Как изменить атрибут заголовка в <a> тег с помощью JavaScript?

Операционная система обеспечивает абстракцию физической машины для вашей программы (т.е. ваша программа работает на виртуальной машине). Таким образом, ваша программа не имеет доступа к каким-либо физическим ресурсам вашего компьютера, будь то процессорное время, память и т. Д .; он просто должен запросить у ОС эти ресурсы.

В случае памяти ваша программа работает в виртуальном адресном пространстве, определяемом операционной системой. Это адресное пространство имеет несколько областей, таких как стек, куча, код и т. Д. Значения ваших указателей представляют адреса в этом виртуальном адресном пространстве. Действительно, 2 указателя на последовательные адреса будут указывать на последовательные местоположения в этом адресном пространстве.

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

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

Что касается вашей программы, это не проблема. Одна из причин этой абстракции - заставить программы поверить, что они единственные пользователи машины. Представьте себе кошмар, который вам придется пережить, если при написании вашей программы вам нужно будет учитывать память, выделенную другими процессами - вы даже не знаете, какие процессы будут выполняться одновременно с вашей. Кроме того, это хорошая техника для обеспечения безопасности: ваш процесс не может (ну, по крайней мере, не должен иметь) злонамеренно обращаться к пространству памяти другого процесса, так как они работают в 2 разных (виртуальных) пространствах памяти.

10
задан Diodeus - James MacFarlane 22 May 2009 в 13:40
поделиться

12 ответов

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

 <a href="#" onclick="this.title='after click'" title="before click">...</a>

В любом случае, лучший способ - вообще избежать поиска. Просто передайте ссылку на свою ссылку в качестве параметра функции:

<script>
  function tool(link) {
    link.title = 'after click';
  }
</script>
<a href="#" onclick="tool(this)" title="before click">...</a>

Естественно, как предлагает Грант, вы также можете передать значение заголовка в функцию, но тогда вам действительно лучше просто выполнить встроенную версию all путь и пропуская функцию.

20
ответ дан 3 December 2019 в 13:47
поделиться

Избавьтесь от тега BR внутри элемента SCRIPT и перепишите функцию инструмента на:

function tool(){
    document.getElementsByName("link")[0].title = "after click";
}

, и она будет работать. Однако это не лучший способ. Если вы назначаете полю параметр id, вы можете, по крайней мере, использовать document.getElementById (..) или, что еще лучше, использовать такую ​​библиотеку, как jQuery.

12
ответ дан 3 December 2019 в 13:47
поделиться

Как предлагает свиристель, лучше использовать getElementById ()

<a id="aLink" href="http://www.bla.com" title="hello">link</a>
 <script>

function tool(){
document.getElementById('aLink').title = "after click";
}

</script>
0
ответ дан 3 December 2019 в 13:47
поделиться

Исправление кода Джейсона:

напишите document.getElementById ("ссылка"). Title вместо document.getElementsByName ("link"). Title.

Я тестировал его в IE7 и Firefox 3.

<html>
<head>
    <script>
            function tool(){
                    document.getElementById("link").title = "after click";
            }
    </script>
</head>
<body>
    <a href="javascript:tool()" id="link" title="before click">
            click here
    </a>
</body>
</html> 

Вы также можете изучить эту статью, чтобы создать красивую подсказку с помощью javascript: http://devirtu.com/2008/08/14/how-to-make-tooltip-with-javascript/

1
ответ дан 3 December 2019 в 13:47
поделиться

Вы можете использовать setAttribute (attributeName, value) для элемента, который хотите изменить.

document.getElementById('link').setAttribute('title', 'after click');

Это также работает для настраиваемых атрибутов

2
ответ дан 3 December 2019 в 13:47
поделиться

Я бы использовал http://jquery.com/ , загрузите его и добавьте ссылку на него

Дайте вашему тегу идентификатор, например myLink

Затем, используя JQuery, вы можете написать

$(document).ready(function () {

    $("#myLink").click(function(){

        $("#myLink").attr("title","after click");

    });

});
0
ответ дан 3 December 2019 в 13:47
поделиться

Используя jquery, вы можете написать следующую команду:

$("a#link").attr("title","after click");
5
ответ дан 3 December 2019 в 13:47
поделиться
document.getElementsByName("link").title = "after click";
1
ответ дан 3 December 2019 в 13:47
поделиться

В предоставленном вами коде есть две ошибки:

  • Как следует из названия, documentmentent.getElementById выполняет поиск по идентификатору, а не по имени. Вам нужно будет указать идентификатор в этом теге привязки. Измените ссылку на щелкните здесь

  • Вы загружаете документ. getElementById - содержимое переменной с именем «ссылка», которая предположительно не существует. На самом деле вы хотели передать буквальную строку, для которой нужны кавычки. Измените этот вызов на document.getElementById ("link"). Title = "after click";

Собирая все вместе, вот как будет выглядеть ваш код:

<html>
<head>
    <script>
        function tool(){
            document.getElementById("link").title = "after click";
        }
    </script>
</head>
<body>
    <a href="javascript:tool()" id="link" name="link" title="before click">
        click here
    </a>
</body>
</html>
0
ответ дан 3 December 2019 в 13:47
поделиться
<html>
<head>
<script>
window.onload = function () {
    window.document.getElementById("link").onclick = function () {
        this.title = "after click";
        return false;
    };
};
</script>
</head>
<body>
    <a href="http://www.example.com" id="link" title="before click">Click Here</a>
</body>
</html>
0
ответ дан 3 December 2019 в 13:47
поделиться

Название изменилось, но только в сгенерированном коде. Так работает JS - справляется только с презентацией. Попробуйте использовать панель инструментов Webdeveloper для Firefox, потому что в ней есть возможность отображать сгенерированный код вместе с исходным. Если вам нужен другой способ, подумайте об использовании некоторого серверного программирования.

Мои наблюдения:



function changeTitle1(){
// find the array of links inside the document
var a = document.getElementsByTagName('a');
// test the array against onclick event
for (var i = 0, j = a.length; i 
  • ИНФОРМАЦИЯ о втором блоке кода:
  • Мы точно знаем, какую ссылку проверять
  • Предложение:
    • используйте лучший обработчик событий;)
  • ПРЕДОСТЕРЕЖЕНИЯ: (также прочтите комментарии)

    Примечание: необходимо ли отображать ссылку , если вы уже находитесь на текущей странице?

0
ответ дан 3 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: