2016-03-07 7 views
-2

Мне нужно добавить содержимое (HTML) к элементу. Вот как я это делаю сейчас ...Чистый способ заполнения содержимого элемента

element.innerHTML += "<a href=\"" + something[awesome] + "\">" + something[great] + "</a>"; 
element.innerHTML += "<br>"; 

Это кажется очень грязным. Есть ли более чистые способы сделать это? Правильно ли это способ createElement()?

+1

Это грязно. createElement - правильный способ составления этого. Сопряжен с appendChild. –

+0

какой-нибудь пример код? –

+0

«Правильно» - очень сильное слово. Некоторые люди предпочитают скорость просто установки 'innerHTML' (что я лично не подтвердил), но опять же, аргумент может быть сделан для использования API так, как он был предназначен для использования. Этот вопрос, вероятно, породит множество простых ответов, основанных на мнениях. –

ответ

0

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

var s = "<a href=\"" + something[awesome] + "\">" + something[great] + "</a>"; 
element.innerHTML += s + "<br>"; 

Выражаясь словами, строить свою строку в переменную , а не непосредственно на имущество innerHTML.

+1

, который все еще очень грязный –

+0

@BruceBlacklaws - Я не утверждал, что это нетронутый, божественный или небесный. Просто это уменьшает негативное влияние мутации 'innerHTML' несколько раз (что ужасно). – Amit

2

Предполагая element, something, awesome и great уже определены, я обычно делаю что-то вроде этого:

// build anchor 
var anchorElement = document.createElement('a'); 
anchorElement.href = something[awesome]; 
anchorElement.appendChild(document.createTextNode(something[great])); 

// build break tag 
var breakElement = document.createElement('br'); 

// append 
element.appendChild(anchorElement); 
element.appendChild(breakElement); 

Распад, вероятно, нет необходимости. Просто используйте CSS, чтобы сделать блок привязки или создать визуальное разделение.

Вот скрипку, чтобы играть с: https://jsfiddle.net/30qvd2vm/

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