0

有人可以帮助解决这个问题:

$('#cont2, #cont3').hide();
$('li a').click(function(){
    var idx= $(this).attr('id').substr(-1);
    $('#cont1, #cont2, #cont3').hide();
    $('#cont'+idx).show();
    return false;
});

这在 IE7 和 IE8 中不起作用。为什么?

HTML

<ul>
       <li class="linktab"><a href="#" id="link1">Link1</a></li>
       <li class="linktab"><a href="#" id="link2">Link2</a></li>
       <li class="linktab"><a href="#" id="link3">Link3</a></li>
</ul>

<div id="cont1">content 1</div>
<div id="cont2">content 2</div>
<div id="cont3">content 3</div>
4

1 回答 1

4

因为旧 IE 的substr实现不支持负索引作为参数。该 MDN 页面中有一个插入式替换,或者您可以简单地执行

var id = $(this).attr('id');
var idx= id.substr(id.length - 2);
于 2013-04-07T16:54:52.020 回答