我想将CSS文件中的样式应用于使用Javascript创建的HTML类。
我的代码如下所示 `
socket.on('chat', function (data) {
feedback.innerHTML = '';
var mewTime = document.createElement("span")
mewTime.class = "chatTime";
mewTime.text = data.currentTime;
console.log(mewTime);
var userName = createUser(data, mewTime);
var content = document.createElement("span")
content.class = "messageContent"
content.append(data.messageInput)
var message = document.createElement("div")
message.class = "message";
message.append(userName[0].outerHTML);
message.append(mewTime);
message.append(document.createElement("br"))
message.append(content);
output.append(message);
currentTime = '';
messageInput.focus();
});
function createUser(data, time){
if(time === null){
var userName = $('<span class="userNameOnline"/>');
userName.text(data);
} else{
var userName = $('<span class="userName"/>')
.text(data.username + ' ' + time.text);
}
console.log(userName);
return userName;
}
// CSS
.message{
color: red;
}
.userName {
color: blue;
}
`
我可以访问消息中的文本,但是无法使用CSS设置样式。
我尝试使用.outerHTML,.innerHTML,.text。 在控制台上,它显示该类的设置正确
答案 0 :(得分:1)
您可以致电.setAttribute("attributeName", "value of attribute")
,也可以使用.className
代替普通的class
。因此,对于您的示例,我们可以有类似以下内容:
var mewTime = document.createElement("span");
mewTime.setAttribute("class", "chatTime");
OR
var mewTime = document.createElement("span");
mewTime.className = "chatTime"
答案 1 :(得分:1)
$(document).ready(function() {
document.getElementById("divTest").classList.add('red');
});
.red {
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<head>
</head>
<body>
<div id='divTest'>
test
</div>
</body>
</html>
您应该使用classList:https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
如果可行,请标记为接受
答案 2 :(得分:1)
您正在寻找classList.add('')
而不是class = ''
。您可以在here上找到更多信息。
这是一个基本示例。
var message = document.createElement("div")
message.classList.add("message")
document.getElementById("output").append(message);
.message {
height: 200px;
width: 200px;
background: blue;
}
<div id="output"></div>
在您的代码中,您可以将其更改为以下内容,并且应该可以使用:
var message = document.createElement("div")
message.classList.add("message")
message.append(userName[0].outerHTML);
message.append(mewTime);
message.append(document.createElement("br"))
message.append(content);
output.append(message);
答案 3 :(得分:0)
您可以使用以下示例在CSS中将CSS应用于HTML元素:
colorScheme = {
domain: ['#5AA454', '#A10A28', '#C7B42C', '#AAAAAA']
};
//////////////////////////
sampleData: any = [];
padding: any = { left: 20, top: 5, right: 20, bottom: 5 };
titlePadding: any = { left: 90, top: 0, right: 0, bottom: 10 };
xAxis: any =
{
dataField: 'name',
gridLines: { visible: true },
flip: false
};
valueAxis: any =
{
flip: true,
labels: {
visible: true,
formatFunction: (value: string) => {
return parseInt(value, 10) / 1000000;
}
}
};
seriesGroups: any[] =
[
{
type: 'column',
columnsGapPercent: 50,
seriesGapPercent: 0,
valueAxis:
{
unitInterval: 100000,
minValue: 0,
maxValue: 1000000,
displayValueAxis: true,
description: 'Amount (in lakhs)',
axisSize: 'auto',
tickMarksColor: '#888888',
formatFunction: (value: string) => {
return parseInt(value, 10) / 100000 || 5;
}
},
series: [
{ dataField: 'value', displayText: 'Amount' }
]
}
];
答案 4 :(得分:0)
您可以这样做
function myFunction() {
var message = document.createElement("span");
message.innerHTML = "Test"
message.className = "message";
document.body.appendChild(message);
}
.message{
color:red;
}
<!DOCTYPE html>
<html>
<body>
<p>Click the button to make element.</p>
<button onclick="myFunction()">Create</button>
<script>
</script>
</body>
</html>
答案 5 :(得分:0)
以下是实现此目的的方法。
var newElement = document.createElement("p");
newElement.setAttribute("class", "className");
答案 6 :(得分:-1)
只需将 class 更改为 className ,希望对您有所帮助。谢谢
mewTime.className = "chatTime";
content.className = "messageContent"
message.className = "message";