2014-10-03 3 views
2

немного путать здесь. У меня есть массив, полный ответов на вопросы, и у меня возникли проблемы с тем, чтобы ссылка отображалась как .. фактическая ссылка. Я пробовал document.write, но это просто ломает мою страницу. Есть идеи?Как вставить ссылку html в строку массива?

this.answer = [ 
    'answer1' + '<a href="URL">click here</a>', 
    'answer 2', 
    'answer 3' 
] 

Я понятия не имею, как писать <a href="URL">click here</a> немного, чтобы получить его, чтобы не выглядеть как просто строка текста, а не HTML. Есть идеи? Мой массив также находится в пользовательском элементе HTML5 Shadow DOM. Я знаю, как настроить таргету DOM, просто не уверен в базовом формате.

Спасибо! - Shan

Редактировать: Спасибо за ответ mplungjan. Как это?

this.answer = [ 
    'answer1' + innerHTML('<a href="URL">click here</a>'), 
    'answer 2', 
    'answer 3' 
] 

это делает все вещи оказываются пустыми на моей странице, однако .. Подумайте я форматирование неправильно

редактировать 2 в порядке, пытаясь исправить его на основе ответов я получил .. I попытался это:

var insertThis = document.getElementById('myElement').innerHTML = '<a href="#">Click here</a>'; 

this.answer = [ 
    'answer1' + insertThis, 
    'answer 2', 
    'answer 3' 
] 

, но он по-прежнему делает мой массив совершенно пустой :(жаль я довольно новыми для массивов это очень запутанным для меня .. мне нужно сделать, чтобы поставить полноту моего первого элемента массива в innerHTML включая бит «answer1»?

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

+0

Вам нужно использовать innerHTML - показать, где вы хотите, чтобы ссылка отображалась – mplungjan

+0

обновил мой вопрос. Спасибо за ответ! – shanling

+0

Вам нужно поместить строку в 'innerHTML' некоторого элемента DOM. Вот когда он анализируется как HTML и превращается в ссылку. – Barmar

ответ

2

Как комментарии к сообщению , текст не обрабатывается как HTML, когда вы помещаете его в DOM своей страницы.

Вы должны установить innerHTML вашего элемента, чтобы быть значение массива, например:

var answer = [ 
     'answer1' + '<a href="URL">click here</a>', 
     'answer 2', 
     'answer 3' 
    ]; 

    document.getElementById("yourelement").innerHTML = answer[0]; 
0

Попробуйте это,

var aColor = [ 
    '<a href="#red">red</a>', 
    '<a href="#green">green</a>', 
    '<a href="#blue">blue</a>' 
]; 

var x = Math.floor(Math.random() % 3); 

document.getElementById('elementId').innerHTML = aColor[x]; 

Массив состоит из трех элементов в нем , Каждый элемент содержит строку. Каждая строка содержит представление ссылки для выделенного цвета. Переменная 'x' является случайным адресом для массива (0, 1, 2).

Смежные вопросы