开发者

use javascript to change <li> style

开发者 https://www.devze.com 2022-12-19 01:53 出处:网络
I have defined styles for <li> #mainNav{clear:both;background-image: url(../images/bg_menu.jpg);开发者_如何学编程width:975px;height:43px;color:#fff;margin-top:-25px;}

I have defined styles for <li>

#mainNav{clear:both;background-image: url(../images/bg_menu.jpg);开发者_如何学编程width:975px;height:43px;color:#fff;margin-top:-25px;}
#mainNav ul{list-style: none;padding: 0;margin: 0;}
#mainNav ul li{line-height:43px;float:left;background-image: url(../images/bg_menu.jpg);font-size:15px;font-weight:normal;text-align:center;cursor:default;padding:0px 15px;}
#mainNav ul li:hover{background:#332a03;color:#f7df84;}
<div id="mainNav">
    <ul>
        <li>Home</li>
        <li>Training and Workshops</li>
        <li>Community Consultations</li>
        <li>Community Surveys</li>
        <li>Program and Facility Assesments</li>
        <li>Reports</li>
    </ul>
 </div>

I now want to go back and change the padding for the <li> to '0px 14px' because for some reason it doesn't render right only on Firefox on Mac. So I have this script so far...

var browser = "other";
var OpSys = "other";
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
    browser = "Firefox";
}
if (navigator.userAgent.indexOf('Win') != -1) {
    OpSys = "Macintosh";
}
// if its a Mac and Firefox, then change the padding
if (OpSys == "Macintosh" && browser == "Firefox") {
    // how do I change the padding for each <li> ?
}


Using jQuery:

jQuery("div#mainNav li").each(function() {
   var $li = jQuery(this);
   $li.css("padding", "0px 14px 0px 0px");       
});

Without jQuery:

var liArr = document.getElementsByTagName("LI");

for(var i = 0; i < liArr.length; i++) {
    var parent = liArr[i].parentNode;
    var grandParent = parent.parentNode;

    if(grandParent != null && grandParent.id == "mainNav") {
       liArr[i].style.padding = "0px 14px 0px 0px";
    }        
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号