Làm thế nào để tôi thêm một lớp cho div
?
var new_row = document.createElement('div');
Làm thế nào để tôi thêm một lớp cho div
?
var new_row = document.createElement('div');
Câu trả lời:
new_row.className = "aClassName";
Dưới đây là thông tin thêm về MDN: className
new_row.className = "aClassName1 aClassName2";
nó chỉ là một thuộc tính, bạn có thể gán bất kỳ chuỗi nào bạn thích, ngay cả khi nó làm cho html không hợp lệ
new_row.classList.add('aClassName');
vì sau đó bạn có thể thêm nhiều tên lớp
Sử dụng .classList.add()
phương pháp:
const element = document.querySelector('div.foo');
element.classList.add('bar');
console.log(element.className);
<div class="foo"></div>
Phương thức này tốt hơn ghi đè lên thuộc className
tính, vì nó không xóa các lớp khác và không thêm lớp nếu phần tử đã có nó.
Bạn cũng có thể chuyển đổi hoặc xóa các lớp bằng cách sử dụng element.classList
(xem tài liệu MDN ).
Đây là mã nguồn làm việc bằng cách sử dụng một cách tiếp cận chức năng.
<html>
<head>
<style>
.news{padding:10px; margin-top:2px;background-color:red;color:#fff;}
</style>
</head>
<body>
<div id="dd"></div>
<script>
(function(){
var countup = this;
var newNode = document.createElement('div');
newNode.className = 'textNode news content';
newNode.innerHTML = 'this created div contains a class while created!!!';
document.getElementById('dd').appendChild(newNode);
})();
</script>
</body>
</html>
Ngoài ra còn có cách DOM để thực hiện điều này trong JavaScript:
// Create a div and set class
var new_row = document.createElement("div");
new_row.setAttribute("class", "aClassName");
// Add some text
new_row.appendChild(document.createTextNode("Some text"));
// Add it to the document body
document.body.appendChild(new_row);
var newItem = document.createElement('div');
newItem.style = ('background-color:red');
newItem.className = ('new_class');
newItem.innerHTML = ('<img src="./profitly_files/TimCover1_bigger.jpg" width=50 height=50> some long text with ticker $DDSSD');
var list = document.getElementById('x-auto-1');
list.insertBefore(newItem, list.childNodes[0]);
var new_row = document.createElement('div');
new_row.setAttribute("class", "YOUR_CLASS");
Điều này sẽ làm việc ;-)
Cũng đáng để xem qua:
var el = document.getElementById('hello');
if(el) {
el.className += el.className ? ' someClass' : 'someClass';
}
Nếu bạn muốn tạo một trường đầu vào mới với file
loại ví dụ :
// Create a new Input with type file and id='file-input'
var newFileInput = document.createElement('input');
// The new input file will have type 'file'
newFileInput.type = "file";
// The new input file will have class="w-95 mb-1" (width - 95%, margin-bottom: .25rem)
newFileInput.className = "w-95 mb-1"
Đầu ra sẽ là: <input type="file" class="w-95 mb-1">
Nếu bạn muốn tạo thẻ lồng nhau bằng JavaScript, cách đơn giản nhất là innerHtml
:
var tag = document.createElement("li");
tag.innerHTML = '<span class="toggle">Jan</span>';
Đầu ra sẽ là:
<li>
<span class="toggle">Jan</span>
</li>
Lưu ý:
classList
Thuộc tính không được hỗ trợ trong Internet Explorer 9 . Đoạn mã sau sẽ hoạt động trong tất cả các trình duyệt:
function addClass(id,classname) {
var element, name, arr;
element = document.getElementById(id);
arr = element.className.split(" ");
if (arr.indexOf(classname) == -1) { // check if class is already added
element.className += " " + classname;
}
}
addClass('div1','show')
Nguồn: làm thế nào để js thêm lớp
Điều này cũng sẽ làm việc.
$(document.createElement('div')).addClass("form-group")