function styleHeaderSiblings() {
if(!document.getElementsByTagName) return false;
    var headers = document.getElementsByTagName("h1");
    for(var i=0;i<headers.length;i++){
     var elem = getNextElement(headers[i].nextSibling);
     elem.style.fontWeight = "bold";
     elem.style.fontSize = "1.2em";
     elem.style.color = "red";
    }
}function getNextElement(node){
if(node.nodeType == 1){
return node;
}
if(node.nextSibling){
return getNextElement(node.nextSibling);
}
return null;
}function addLoadEvent(func){
var oldonload = window.onload;
if(typeof window.onlaod !='function' ){
window.onload = func;
}
else{
window.onload = function(){
oldonload();
func();
}
}
}addLoadEvent(styleHeaderSiblings);HTML部分:<h1><br></h1><h1>Hold the front page</h1>
   <p>This is first paragraph leads you</p>
   <p>Now this is the content.</p>
   <h1>Extra! Extra!</h1>
   <p>This is the second paragraph leads you</p>我想实现的就是,设置每个H1标签下面的的那个元素节点的的style,但是结果却不是,第一个H1和P里面的内容都被设置了,但是第二个H1和P又能正常显示,请问应该如何更改程序。

解决方案 »

  1.   

    你这样是不是太麻烦了?
    如果希望某些元素有不同的样式,直接做好几个不同的样式;函数里面改变一下相应元素的className就好了。
      

  2.   

    function styleHeaderSiblings() {
    if(!document.getElementsByTagName) return false;
      var headers = document.getElementsByTagName("h1");
      for(var i=0;i<headers.length;i++){
    if(headers[i].nextSibling.nodeName.toLowerCase() == "h1"){
    continue;
    }

      var elem = getNextElement(headers[i].nextSibling);
      elem.style.fontWeight = "bold";
      elem.style.fontSize = "1.2em";
      elem.style.color = "red";
      }
    }
      

  3.   


    其实我是刚学的,所以想试试通过JS直接操作tag和style.所以想尝试各种方法