Ответ 1
Вы должны использовать метод .setAttribute()
:
g = document.createElement('div');
g.setAttribute("id", "Div1");
Я пытаюсь изменить этот код, чтобы также дать этому элементу div идентификатор, однако я ничего не нашел в google, а idName не работает. Я читал что-то об append, однако для задачи, которая кажется довольно простой, кажется довольно сложной, так есть альтернатива? Спасибо:)
g=document.createElement('div'); g.className='tclose'; g.v=0;
Вы должны использовать метод .setAttribute()
:
g = document.createElement('div');
g.setAttribute("id", "Div1");
Вы можете использовать g.id = 'desiredId'
из своего примера, чтобы установить идентификатор созданного вами элемента.
var g = document.createElement('div');
g.id = 'someId';
Вы можете использовать Element.setAttribute
Примеры:
g.setAttribute("id","yourId")
g.setAttribute("class","tclose")
Вот моя функция, чтобы сделать это лучше:
function createElement(element, attribute, inner) {
if (typeof(element) === "undefined") {
return false;
}
if (typeof(inner) === "undefined") {
inner = "";
}
var el = document.createElement(element);
if (typeof(attribute) === 'object') {
for (var key in attribute) {
el.setAttribute(key, attribute[key]);
}
}
if (!Array.isArray(inner)) {
inner = [inner];
}
for (var k = 0; k < inner.length; k++) {
if (inner[k].tagName) {
el.appendChild(inner[k]);
} else {
el.appendChild(document.createTextNode(inner[k]));
}
}
return el;
}
Пример 1:
createElement("div");
вернет это:
<div></div>
Пример 2:
createElement("a",{"href":"http://google.com","style":"color:#FFF;background:#333;"},"google");'
вернет это:
<a href="http://google.com" style="color:#FFF;background:#333;">google</a>
Пример 3:
var google = createElement("a",{"href":"http://google.com"},"google"),
youtube = createElement("a",{"href":"http://youtube.com"},"youtube"),
facebook = createElement("a",{"href":"http://facebook.com"},"facebook"),
links_conteiner = createElement("div",{"id":"links"},[google,youtube,facebook]);
вернет это:
<div id="links">
<a href="http://google.com">google</a>
<a href="http://youtube.com">youtube</a>
<a href="http://facebook.com">facebook</a>
</div>
Вы можете создавать новые элементы, устанавливать атрибуты и добавлять дочерние элементы.
createElement("tag",{attr:val,attr:val},[element1,"some text",element2,element3,"or some text again :)"]);
Нет ограничений для атрибутов или дочерних элементов
Почему бы не сделать это с помощью jQuery?
var newDiv= $('<div/>', { id: 'foo', class: 'tclose'})
var element = document.createElement('tagname');
element.className= "classname";
element.id= "id";
попробуйте это, вы хотите.
Я не уверен, что вы пытаетесь установить идентификатор, чтобы вы могли его стилизовать в CSS, но если это так, то вы также можете попробовать:
var g = document.createElement('div');
g.className= "g";
и это назовет ваш div, чтобы вы могли настроить его.
Вы также можете добавить несколько классов:
div.classList.add("class1", "class2", "class3");
или же:
div.className = "class1 class2";