【问题标题】:Is there a simple Javascript command that targets another object?是否有针对另一个对象的简单 Javascript 命令?
【发布时间】:2011-06-29 06:09:14
【问题描述】:

我有一个页面,里面有两个 div,一个在另一个里面,像这样:

<div id='one'> 
<div id='two'></div>
</div>

我希望 div 1 在单击时更改类,然后在 div 2 被选中时更改回来。

我对 javascript 完全陌生,但我设法找到了一个简单的命令,当我单击它时,它会使 div 发生变化。

<div id='one' class='a' onclick="this.className='b';">
<div id='two'></div>
</div>

现在我只需要一种同样简单的方法来在单击数字 2 时将 div 改回。

我尝试将“this.className”更改为“one.classname”,出于某种原因,这在我处理图像时有效,但它根本不适用于 div

<div id='one' class='a' onclick="this.className='b';">
<div id='two' onclick="one.className='a';">
This does not work.
</div>
</div>

基本上我想知道是否有可以用来定位其他元素的 javascript“this”的替代品。

我找到了几个可以执行我正在寻找的操作的脚本,但是如果有另一个像我发现的第一个这样简单的脚本,我不想使用一个又大又长的复杂脚本。

【问题讨论】:

  • 欢迎来到 StackOverflow。第一个问题很好。

标签: javascript html css dom


【解决方案1】:

您可以使用document.getElementById

<div id='two' onclick="document.getElementById('one').className='a'; return false;"> 
 This does not work. 
</div>

【讨论】:

  • 这仍然不起作用,但那是因为它仍然是另一个 div 的一部分,并且同时激活了另一个 onclick。一旦它在 div one 之外,它就可以很好地工作。谢谢!
  • 请注意,div 是嵌套的。内部的会将外部切换为a,但随后事件会冒泡,并触发外部的处理程序,这会将其更改回b
【解决方案2】:

这可行:

document.getElementById('one').className = 'a';

【讨论】:

    【解决方案3】:

    你可以通过 id 获取元素:

    document.getElementById("one")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多