Javascript:为什么在一个页面上document.write('id')。style.display ='block'工作而另一个不工作?

时间:2011-11-25 22:05:56

标签: javascript dom

我不知道怎么可能! 我有代码:

<script type="text/javascript">
    function SHOW(){document.getElementById('11').style.display='block';}
</script>
<a href="javascript:SHOW();">show</a>
<div id="11" style="display:none;">Some text</div>

在一个页面上,这个脚本可以正常工作,而在另一个页面上,它根本不起作用......

如果这很重要,我会在两个页面上使用jQuery。

怎么可能?

谢谢!

2 个答案:

答案 0 :(得分:3)

既然你说你在使用JQuery,那么你如何使用JQuery?

CSS

.hidden {
    display:none;
}

HTML

<span id="show">Show text</span>
<div id="foobar" class="hidden">Some text</div>

<强> JQuery的

$(function(){
    $('#show').click(function(){
        $('#foobar').show();
    });
});

演示:http://jsfiddle.net/rdBkF/

答案 1 :(得分:0)

Vitali,你不需要使用简单的JQuery,它只是浪费资源。

您刚给出的代码问题是元素的ID是“11”,ID属性应始终以字符或下划线开头,而不是数字。

它可能适用于某些浏览器,而其他浏览器则可能不适用。

我的建议,使用以下划线或a-z或A-Z字符开头的ID,一旦页面加载,就向A元素注册一个事件监听器。

window.addEventListener('load',
function()
{
    elementA   = document.getElemenById('IDOfTheelementA');
    elementDiv = document.getElemenById('IDOfTheelementDiv');
    elementA.addEventListener('click',
        function() { elementDiv.style.display = 'block'; },
        true);
}, true);