Javascript:为什么在一页上 document.write('id').style.display='block'有效,而另一个则无效?

发布于 2024-12-17 19:57:16 字数 402 浏览 0 评论 0原文

我根本不知道怎么会这样!!! 我有代码:

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

怎么可能呢?

谢谢!

I do not how can it be at all!!!
I have code:

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

On one page this script works as it should be, and on another it doesn't work at all...

If this important I use jQuery on both pages.

How can it be?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

初见你 2024-12-24 19:57:16

既然你说你正在使用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/

Since you said you're using JQuery, how about you use 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();
    });
});

Demo: http://jsfiddle.net/rdBkF/

策马西风 2024-12-24 19:57:16

Vitali,您不需要使用 JQuery 来做那么简单的事情,它只是无缘无故地浪费资源。

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

它可能在某些浏览器中有效,而在其他浏览器中则可能无效。

我的建议是,使用以下代码或 az 或 AZ 字符开头的 ID,加载页面后,向 A 元素注册一个事件侦听器。

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

Vitali, you don’t need to use JQuery for something that easy, it is just wasting resources for no reason.

The problem of the code you just gave is that the ID of the element is “11”, and ID attributes should always start with a character or underscore, never with a number.

It might work in some browsers and in others might not.

My recommendation, use an ID that begins with underscode or an a-z or A-Z character and once the page has been loaded, register an event listener to the A element.

window.addEventListener('load',
function()
{
    elementA   = document.getElemenById('IDOfTheelementA');
    elementDiv = document.getElemenById('IDOfTheelementDiv');
    elementA.addEventListener('click',
        function() { elementDiv.style.display = 'block'; },
        true);
}, true);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文