firstChild这个属性是不是废除了?

解决方案 »

  1.   

    没有废除,但你使用要小心,firstChild可能是空格等非html元素
      

  2.   

    IE 中老警告,说firstChild 为空或不是个对像
      

  3.   

    新的浏览器使用firstElementChild
    http://dotnet.aspx.cc/file/firstElementChild-lastElementChild-previousElementSibling-nextElementSibling-childElementCount.aspx
      

  4.   


    <html><head><title>Date example</title>
    <style type="text/css">
    .error{
    color:#c00;
    font-weight : bold ;
    }
    </style>
    <script type="text/javascript" src="js/checkDate.js"></script>
    </head><body>
        <h1>Events Search</h1>
        <form onsubmit="return checkDate()">
            <p>
                <label for="date">Date in the format DD/MM/YY</label>
                <input type="text" id="date" name="date" />
                <input type="submit" value="Check" />
                <br/>(example 26/04/2012) <span class="error"></span>
            </p>
        </form>
    </body></html>
    下面是JS代码:// JavaScript Document
    function checkDate(){
        if(!document.getElementById || !document.createTextNode){
            return;
        }
        var dateField = document.getElementById("date");
        if(!dateField){return;}
        var errorContainer = dateField.parentNode.getElementsByTagName("span")[0];
        if(!errorContainer){return;}
        var checkPattern = new RegExp("\\d{2}/\\d{2}/\\d{4}");
        var errorMessage = "";
        errorContainer.firstElementChild.nodeValue = '';
        var dateValue = dateField.value;
        if(dateValue == ""){
            errorMessage = "Plaese provide a date.";
        }else if(!checkPattern.test(dateValue)){
            errorMessage = "Pleaes provid the date in the defined format";
        }
        
        if(errorMessage != ""){
            errorContainer.firstChild.nodeValue = errorMessage;
            dateField.focus();
            return false;
        }else{
            return true;
        }
    }
      

  5.   

    function checkDate() {
    if (!document.getElementById || !document.createTextNode) {
      return;
    }
    var dateField = document.getElementById("date");
    if (!dateField) {
      return;
    }
    var errorContainer = dateField.parentNode.getElementsByTagName("span")[0];
    if (!errorContainer) {
      return; 
    }
    var checkPattern = new RegExp("\\d{2}/\\d{2}/\\d{4}");
    var errorMessage = "";
    errorContainer.innerHTML = '';
    var dateValue = dateField.value; 
    if (dateValue == "") {
      errorMessage = "Plaese provide a date.";
    }
    else if (!checkPattern.test(dateValue)) {
      errorMessage = "Pleaes provid the date in the defined format";
    }
    if (errorMessage != "") {
      errorContainer.innerHTML = errorMessage; 
      dateField.focus();
      return false;
    } else {
      return true;
    }
    }
      

  6.   

    你这个span没有任何子节点,你不用firstChild做什么啊
      

  7.   

    Firefox 会空内容视为一个文本节点。
      

  8.   

    用innerHTML 这个我会,就是不太理解用节点来选择