document.location到第一个孩子<a> tag not working in ie6 &amp; ie7</a>

时间:2013-08-23 15:34:07

标签: javascript jquery html cross-browser

我有这个HTML代码:

<ul id="mainlynav">
<li><a href="#">text1</a>
    <ul class="subnavul">
        <li>
            <a href="a.php">Link to a</a>
        </li>
        <li>
            <a href="b.php">Link to b</a>
        </li>
        <li>
            <a href="b.php">Link to b</a>
        </li>
    </ul>
</li> 
<li><a href="#">text2</a>
    <ul class="subnavul">
        <li>
            <a href="d.php">Link to d</a>
        </li>
        <li>
            <a href="e.php">Link to e</a>
        </li>
        <li>
            <a href="f.php">Link to f</a>
        </li>
    </ul>
</li></ul>

我希望当用户点击其中一个顶级链接(text1或text2)时,页面转到第一个子链接(如果text1页面应该转到“a.php”) 所以我这样写我的剧本:

<script type="text/javascript">
$(document).ready(function(){
    $('#mainlynav a[href="#"]').click(function(){
        var DOM = $(this).siblings('.subnavul').first();
        var DOM2 = DOM.children('li').first();
        var DOM3 = DOM2.children('a').first();
        document.location=DOM3.attr('href');
        return false;
    });
});
</script>

这整个过程在所有现代浏览器中都能正常工作 但在IE6&amp; 7,它不起作用!

问题是什么?

提前感谢。

1 个答案:

答案 0 :(得分:0)

您的代码:

$(document).ready(function(){
    $('#mainlynav a[href="#"]').click(function(){
        var url = $(this).next('.subnavul').find('a').first().attr('href');
        if(url) {
            document.location.href = url;
            return false;
        }
    });
});