изменить ссылку HREF в простом JavaScript - PullRequest
1 голос
/ 03 февраля 2012

Я создаю новый элемент DOM, чтобы позже я мог заполнить его данными:

var bubbleDOM = document.createElement('div');
bubbleDOM.setAttribute('class', 'selection_bubble');
document.body.appendChild(bubbleDOM);

Я хочу перебирать ссылки в этом недавно созданном элементе, чтобы превратить адреса, такие как "thing.something "в"http://www.something.something". Я не хочу jQuery, поэтому я попытался безуспешно:

var links = bubbleDOM.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    links[i].href = "http://www." + links[i].href.value;
}

Ответы [ 3 ]

1 голос
/ 03 февраля 2012

Несколько вещей выделяются.

  1. links[i].href.value недопустимо.Просто используйте links[i].href.
  2. . Вы должны убедиться, что в href действительно есть что-то.

Вот пример, который работает для меня:

var links = bubbleDOM.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    if (!!links[i].href && links[i].href.length > 0) { // Check that there is an href
        links[i].href = "http://www." + links[i].href;
    }
}
0 голосов
/ 03 февраля 2012

используйте методы получения и установки для доступа / изменения атрибутов: getAttribute и setAttribue.

Вот демо: http://jsfiddle.net/rF9qk/

0 голосов
/ 03 февраля 2012

links[i].href.value всегда будет абсолютным URL, поэтому, если атрибут в HTML выглядит как

<a href="something.something">

, тогда значение links[i].href.value будет примерно таким:

"http://current.domain/something.something"

Попробуйте использовать getAttribute('href') вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...