最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How can I give a javascript element a CSS class? - Stack Overflow

programmeradmin1浏览0评论

I've got the following code

var addressPopupMenu = window.createPopup();
function showAddressPopup() {
    var popup = document.getElementById('addressFullSpan');

    popupMenuBody = popupMenu.document.body;
    popupMenuBody.style.backgroundColor = "#336699";
    popupMenuBody.style.border = "solid 2px; white";
    popupMenuBody.style.fontSize="130%";
    popupMenuBody.style.color="white";
    popupMenuBody.style.padding="10px";
    popupMenuBody.style.paddingLeft="30px";

As you can see I'm repeating popupMenuBody.style. How can I give popupMenuBody.style a css class so I dont have to repeat this for every popup

edit: it's not working

I've added popupMenuBody.className = "popups";

.popups
    {
        background-color: #29527A;
        border: solid 2px; white;
        fontSize:120%;
        pcolor:white;
        padding:10px;
        paddingLeft:30px;
        textTransform:capitalize;
    }

also yes, i am including the .css in my page its working else where on the page

I've got the following code

var addressPopupMenu = window.createPopup();
function showAddressPopup() {
    var popup = document.getElementById('addressFullSpan');

    popupMenuBody = popupMenu.document.body;
    popupMenuBody.style.backgroundColor = "#336699";
    popupMenuBody.style.border = "solid 2px; white";
    popupMenuBody.style.fontSize="130%";
    popupMenuBody.style.color="white";
    popupMenuBody.style.padding="10px";
    popupMenuBody.style.paddingLeft="30px";

As you can see I'm repeating popupMenuBody.style. How can I give popupMenuBody.style a css class so I dont have to repeat this for every popup

edit: it's not working

I've added popupMenuBody.className = "popups";

.popups
    {
        background-color: #29527A;
        border: solid 2px; white;
        fontSize:120%;
        pcolor:white;
        padding:10px;
        paddingLeft:30px;
        textTransform:capitalize;
    }

also yes, i am including the .css in my page its working else where on the page

Share Improve this question edited Mar 7, 2011 at 11:59 124697 asked Mar 7, 2011 at 11:49 124697124697 21.9k69 gold badges197 silver badges319 bronze badges 1
  • Amazing, three suggestions for JQuery and all the OP wants to do is style a single element. – user50049 Commented Mar 8, 2011 at 9:48
Add a ment  | 

8 Answers 8

Reset to default 5

popupMenuBody.className = "class_name";

popupMenuBody.className = "my class";

.popups
    {
        background-color: #29527A;
        border: solid 2px white;
        font-size: 120%;
        color: white;
        padding: 10px;
        padding-left: 30px;
        text-transform: capitalize;
    }

use jquery addClass? http://api.jquery./addClass/

I would do it using Jquery and addClass():

$('#addressFullSpan').addClass('name')

jQuery has the method addClass() for applying a CSS class to an element

http://api.jquery./addClass/

Have you tried :

var addressPopupMenu = window.createPopup();
function showAddressPopup() {
    var popup = document.getElementById('addressFullSpan');
    popupMenuBody = popupMenu.document.body;
    popupMenuBody.className = "className";
    ...
}

To assign a CSS class to an element created in JavaScript, you can just use the following line of code:

popupMenuBody.className = "popups";

You've said that this doesn't work, but this is actually because your CSS is broken. I'm assuming that you've copy/pasted some JavaScript into your CSS file and changed it a bit, and as a result, your property names are all wrong. What you actually need for your CSS is this:

.popups
{
    background-color: #29527A;
    border: solid 2px white;
    font-size:120%;
    color:white;
    padding:10px;
    padding-left:30px;
    text-transform:capitalize;
}

Notice that I have:

  1. removed the ";" between "2px" and "white"
  2. renamed "fontSize" to "font-size"
  3. renamed "pcolor" to "color"
  4. renamed "paddingLeft" to "padding-left"

Your CSS should now get applied correctly.

To avoid overwriting existing classnames on popupMenuBody, do this:

popupMenuBody.className += ' class_name';
发布评论

评论列表(0)

  1. 暂无评论