2011-03-14 5 views
0

J'ai utilisé la fonction split juste pour diviser la date mais le code ne fonctionne pas sur IE bien que fonctionne bien avec d'autres browser.ul, li est généré dynamiquement.javascript split ne fonctionne pas sur IE

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 
<body> 
<table cellspacing="0" cellpadding="0" border="0" width="100%"> 
    <tbody> 
      <tr> 

       <td id="getexp"> 
       <ul class="zoneSubscriptions"> 
        <li> 
         <ul> 
          <li class="zoneName"><a href="/xyz.com">thats my info</a></li> 
          <li>5/04/2012</li> 
          <li>792.00 Yearly</li> 
          <li><a href="#">Cancel</a></li> 
         </ul> 
        </li> 
       </ul> 
       </td> 
      </tr> 
    </tbody> 
</table> 
<script> 
function getText() 
{ 
    var val = document.getElementById('getexp').innerHTML; 
    var val1=(val.split("<ul>")); 
    var val1=(val.split("<li>")); 
    var dat=val1[2]; 
    var res=(dat.split("</li>")); 
    alert(res[0]); 
} 
getText(); 
</script> 

</body> 
</html> 
+0

ul, balise li dans IE sera

    ,
  • . (Majuscule) – ahgood

    Répondre

    0

    Pas besoin de split ici. Vous pouvez obtenir tous li dans un objet Nodelist comme ceci:

    var res = document.getElementById('getexp').getElementsByTagName('li'); 
    alert(res[0]); 
    

    EDIT basé sur le commentaire: si vous avez vraiment besoin split, vous pouvez utiliser une expression régulière pour assurer la casse. En outre, si c'est le innerHTML du second <ul>, donnez ce <ul> et id (dites 'données'). Si c'est la date que vous êtes après, vous cherchez le deuxième élément du tableau le split vous livre (tableaux sont zero based) Votre fonction peut être simplifiée à:

    function getText() 
    { 
        var val = document.getElementById('data').innerHTML.split(/<li>/i); 
         , res = val[1].replace(/<\/li>/i,''); 
        alert(res); 
    
        //now if you want to increase the year in the date: 
        var dat = res.split(/\//); 
        dat[2] = parseInt(dat[2],10)+1; 
        val[1] = dat.join('/')+'</li>'; 
    } 
    
    +0

    Merci pour la réponse mais je dois diviser les valeurs de la date car j'ai besoin de les mettre à jour individuellement pour que je doive utiliser la fonction split qui crée le problème var res = document.getElementById ('getexp') .getElementsByTagName ('li'); alerte (res [2] .innerHTML); Je dois ajouter 1 an à la date qui s'affiche et le passer – amit

    +0

    Merci mon pote m'a beaucoup aidé – amit

    Questions connexes