如何将CSS样式添加到javascript生成的HTML?

时间:2014-09-19 03:53:38

标签: javascript jquery

我有一个生成HTML的javascript:

function showdropdown(name1,sel, param){
        var dval="";
        dval = "<select name=\"" + name1 + "\" id=\"" + name1 + "\" >";
        dval += "<option value=\"\">Option</option>\r\n";';

如何为此添加 class =“my_style”?它一定非常容易,但不幸的是我对javascript结构与HTML结合一无所知。

我试过了:

        dval = "<select name=\"" + name1 + "\" id=\"" + name1 + "\" class=\""mystyle"\">";

哪个不起作用:(

3 个答案:

答案 0 :(得分:0)

你真的应该使用引号/标记这样的东西,它比转义引号容易得多。

另外,你没有在mystyle

上使用加号运算符
 dval = "<select name='" + name1 + "' id='" + name1 + "' class='" + mystyle + "'>";

答案 1 :(得分:0)

您要添加课程my_style还是mystyle?如果您想要my_style,则缺少下划线。

如果类名不是变量,则无需添加双引号:

dval = "<select name=\"" + name1 + "\" id=\"" + name1 + "\" class=\"mystyle\">";

答案 2 :(得分:0)

我无法确定你帖子中的信息,但我猜你的mystyle变量没有引用任何内容。你可能正在寻找类似......的东西。

dval = "<select name=\"" + name1 + "\" id=\"" + name1 + "\" class=\"my_style\">";

您正在做的事情(即创建标记的字符串表示)应该有效,只要您计算出您创建的任何语法错误等。但这往往是您的方法的问题:它很容易导致错误,尤其是当HTML变得越来越复杂时。

您可能需要考虑使用可用的DOM方法来创建和使用元素。

e.g。

var divElement = document.createElement('div');
divElement.id = 'some-id'; // Add an ID attribute
divElement.className = 'error'; // Set (and replace any existing) class attribute
divElement.classList.add('bordered'); // Another method of adding a class (no replace)
divElement.textContent = 'Hello, hello!'; // Set the text content… it's all good
document.body.appendChild(divElement); // Append the node to the document

您可以查看此JS Fiddle以查看其实际效果。如果您想了解有关可用DOM方法的更多信息,可以查看NodeElement文档。

评论@Seano666的答案......他说对,使用两种引号可以让事情比逃避更容易。但是你应该使用外部单引号,并使用HTML的双引号作为标准。