javascript拆分不在IE上运行

时间:2011-03-14 05:56:24

标签: javascript

我一直在使用split函数来分割日期但是代码在IE上不起作用,虽然与其他browser.ul一起使用,但是动态生成了li。

<!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>

1 个答案:

答案 0 :(得分:0)

这里不需要split。您可以在一个Nodelist对象中获取所有li,如下所示:

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

编辑:如果您确实需要split,则可以使用正则表达式来确保不区分大小写。此外,如果它是第二个&lt; ul&gt;的innerHTML,那么给它&lt; ul&gt;一个 id (比如说'数据')。如果它是您所追踪的日期,那么您正在寻找split为您提供的数组的第二个元素(数组为zero based)您的函数可以简化为:

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>';
}