如何使用javascript更改内联另一个元素的样式?

Posted

技术标签:

【中文标题】如何使用javascript更改内联另一个元素的样式?【英文标题】:How to change the style of another element inline using javascript? 【发布时间】:2017-06-28 14:50:21 【问题描述】:

我想使用 javascripthtml 元素中更改另一个元素的样式。

我已经使用下面的代码来更改当前的 html 元素。

<p onmouseover="this.style.color = 'black;">This text should be changed</p>
<h1>How to change this element when hovered on p element</h1>

我想使用 javascript 更改 p 标签内其他元素的样式。

谁能帮忙?

【问题讨论】:

Add inline style using Javascript的可能重复 不清楚问题... 为什么用js简单用cssp:hover + h1"add your style 【参考方案1】:

使用 CSS 你可以达到同样的效果

<style>
 p:hover + h1 
  background-color : red
 
</style>

【讨论】:

【参考方案2】:

这应该是你所追求的(不是我的工作)——查看小提琴链接......

<html>
<body>
    <span id="div1" style="color:black;" onmouseover="stext()" onmouseout="htext()">TEXT1</span><p />
    <hr color="black" />
<span id="div2" style="color:red;" onmouseover="htext()" onmouseout="stext()">Text2</span> 

</body>

http://jsfiddle.net/FFCFy/16/

【讨论】:

【参考方案3】:

例如,如果你想改变颜色:

<script>
document.getElementByTagName("p").style.color = "blue";
</script>

这可能应该绑定到一个事件,根据你想要做的事情

【讨论】:

【参考方案4】:

使用这个:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <p style="color:red;" onmouseover="ch(event)">This text should be changed</p>
    <h1>How to change this element when hovered on p element</h1>

    <script>
        function ch(e) 
            e.target.style.color = "black";
            alert();
        
    </script>

</body>
</html>

【讨论】:

【参考方案5】:

与 Javascript 一起使用

function change(that)
document.getElementsByTagName('h1')[0].style.color="red";
  
  
<p onmouseover="change()">This text should be changed</p>
<h1>How to change this element when hovered on p element</h1>

与 css 一起使用

p:hover + h1
  color:red;
  
<p >This text should be changed</p>
<h1>How to change this element when hovered on p element</h1>

【讨论】:

【参考方案6】:
jQuery("p").mouseover(function()
   jQuery("h1").css("color", "yellow");
);

【讨论】:

【参考方案7】:

你可以用 jQuery 轻松实现:

$(function() 
  $('#a-element').hover(function() 
    $('#b-element').css('background-color', 'yellow');
  , function() 
    // on mouseout, reset the background colour
    $('#b-element').css('background-color', '');
  );
);

如果#b 紧跟在#a 之后,最简单的解决方案是纯css:

#a:hover + #b 
    background: #ccc

如果#a 和#b 之间是其他元素,你必须像这样使用~:

#a:hover ~ #b 
    background: #ccc

【讨论】:

以上是关于如何使用javascript更改内联另一个元素的样式?的主要内容,如果未能解决你的问题,请参考以下文章

如何在flex中访问内联组件的元素?

悬停一个元素,然后更改另一个元素(不使用 Javascript)

查找正在更改 DOM 元素的 javascript

JavaScript之onclick事件

CSS3使用JAVASCript触发过渡效果

如何使用javascript动态更改html中svg的文本内容