принимая заголовок HTML к переменной javascript

0

Как получить переменную в titleText "Some Name" из JS файла, чтобы заполнить или взять заголовок из гиперссылки "sometitle" в HTML-коде?

JS

var randomtext={ titleText:"Some Name",}

HTML

<a class="css" title="sometitle" href="#">Your HTML Here</a>

Я бы хотел, чтобы JS изменилась на:

JS

var randomtext={ titleText:"sometitle",}

Имя заголовка, исходящее из заголовка в якоре гиперссылки

Я попробовал следующее, и это не сработало

JS

    var randomtext={ 
titleText:document.getElementsByClassName('css')[0]; randomtext.titleText = anchor.getAttribute('title');,
title2: "name1",
title3: "name3",
title4: "name4",

}
Теги:
variables
var

2 ответа

0

Во-первых, вам нужно как-то идентифицировать элемент <a>. Самый простой способ - дать ему идентификатор.

Затем, используя document.getElementById, вы можете получить доступ к гиперссылке внутри вашего скрипта. После этого вы можете получить доступ к своему названию с помощью setAttribute и getAttribute.

HTML

<a id="myLink" class="css" title="sometitle" href="#">Your HTML Here</a>

JavaScript

var link = document.getElementById("myLink");

// Take the title from the link
var randomText = { titleText: link.getAttribute("title") };

// Change the link title
link.setAttribute("title", randomText.titleText);

Надеюсь, это то, о чем вы просили, потому что, если честно, я не совсем уверен, что вы хотели сказать.

  • 0
    просто попробовал свой, и это тоже не сработало
  • 0
    @DavidSmith Это делает. Посмотрите на этот пример, который я сделал: jsbin.com/akEHELI/1 | Выводит заголовок ссылки.
0

Это предполагает, что вы хотите получить "название" атрибут на якорь, и использовать его, чтобы установить значение titleText собственности на вашем randomtext объекта:

JS

var randomtext={ titleText:"Some Name"}
// a more specific class name or id would be better suited here
var anchor = document.getElementsByClassName('css')[0];  
randomtext.titleText = anchor.getAttribute('title');

jsFiddle

Обновить

Я не уверен, почему вы хотите включить всю логику в определение объекта, но ваш текущий javascript недействителен. Если вы абсолютно должны назначить значение свойству titleText при создании объекта randomText, должно работать следующее:

   var randomtext={ 
     // this immediately invokes a function 
     // which looks for the first anchor
     // and returns it title attribute
     // that attribute is then assigned to the titleText property
     // on the object.
     titleText:(function () {
         var anchor = document.getElementsByClassName('css')[0];     
         return anchor.getAttribute('title');
     })(),
    title2: "name1",
    title3: "name3",
    title4: "name4",
}
  • 0
    Вы правы, я хотел бы взять заголовок с якоря и использовать его для установки значения свойства в сценарии JS. Я пробовал оба кода, и ни один из них не работал.
  • 0
    Код JS, который вы написали, недействителен. Вы можете либо переписать свой код так, как я написал его в своем ответе, либо обернуть его в iife и вернуть значение, которое вы хотите присвоить свойству titleText. Кроме того, ваш JS должен быть. включается после загрузки DOM или b. используйте функцию готовности, чтобы дождаться загрузки DOM.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню