仅更改悬停javascript上的链接颜色
Change link color on hover javascript only
是否可以在悬停在另一个特定项目上时更改某个项目。
例如:
<li>
<a href="#">test</a>
</li>
JS-
var list = document.getElementById('li');
var link = document.getElementById('a');
list.onmouseover = function() {
link.style.color = "#8080ff";
}
如果我将鼠标悬停在li
项上,我希望a
标记中的文本发生更改,但此代码不起作用。
我不能使用css或jquery库。
http://jsfiddle.net/Nt8Pq/40/
您的代码查找有id的元素,而您没有id。您需要通过标记名称来选择它们,并在集合上循环。然后你需要找到收藏中的锚。
var menu = document.getElementById("menu");
var lis = menu.getElementsByTagName("li");
for (var i = 0; i < lis.length; i++) {
var li = lis[i];
li.addEventListener("mouseover", function() {
this.getElementsByTagName("a")[0].style.color = "#8080ff";
});
li.addEventListener("mouseout", function() {
this.getElementsByTagName("a")[0].style.color = "#000000";
});
}
<ul id="menu">
<li>
<a href="#">test</a>
</li>
<li>
<a href="#">test</a>
</li>
<li>
<a href="#">test</a>
</li>
</ul>
最后这是实现的大量代码
ul li:hover a {
color : "#8080ff";
}
所以,如果你不能真正向页面添加样式,你可以注入一个CSS规则。。。
var sheet = window.document.styleSheets[0];
sheet.insertRule('#menu li:hover a { color: #8080ff; }', sheet.cssRules.length);
<ul id="menu">
<li>
<a href="#">test</a>
</li>
<li>
<a href="#">test</a>
</li>
<li>
<a href="#">test</a>
</li>
</ul>
这可以通过一些简单的HTML事件属性和JavaScript来完成。
<li>
<a href="#" onmouseover="this.style.color='red'" onmouseout="this.style.color='blue'">test</a>
</li>
HTML事件属性
如果你想用JS来做这件事,下面是答案。但正如之前所说,你不应该这样做:
<li id="list">
<a id="link" href="#">test</a>
</li>
var list = document.getElementById('list');
var link = document.getElementById('link');
http://jsfiddle.net/Nt8Pq/45/
假设您不能修改CSS或网页的源代码,并且您只能使用一个javascript文件来修改网页的某些功能,那么这种方法将起作用:
需要注意的是,必须在document.getElementsByTagName('li')
中使用一个返回数组的索引。例如,如果您总是需要第一个元素,则可以将此索引硬编码为零。否则,您需要对集合进行迭代,以查找要更改的集合。
最后,您可以在找到所需的列表项后修改firstChildElement
的样式。
var li = document.getElementsByTagName('li')[0];
li.onmouseover = function() {
li.firstElementChild.style.color = "#F00"; // red
}
li.onmouseout = function() {
li.firstElementChild.style.color = "#000"; // black
};
<li>
<a href="#">Mouse over me.</a>
</li>
var nodesArray = document.getElementById('myID').getElementsByTagName('a');
for (var i = 0; i < nodesArray.length; i++) {
nodesArray[i].style.color = 'red';
}
也许你会在这个链接中找到你的解决方案:-https://ubuntuforums.org/showthread.php?t=1692280
相关文章:
- 使用量角器测试链接颜色
- 更改Jquery UL li筛选器中的链接颜色
- Jquery切换链接颜色
- 如何在页面刷新时保持选定/活动的HTML链接颜色
- 更改文本链接颜色 JavaScript 或 CSS
- Javascript OnClick 更改各种元素链接颜色
- 使用CSS和JavaScript点击,链接颜色在被点击和激活时会发生变化,直到我点击其他链接
- 在javascript而不是CSS(悬停)中更改链接颜色---在jsfiddle而不是浏览器中工作
- 如何在 CSS 中将颜色设置为用户的链接颜色
- JS点击功能不再工作以更改链接颜色
- 是否可以使用Javascript在页面刷新时随机生成预先确定的链接颜色和悬停颜色
- 滚动时更改scrollspy链接颜色
- Javascript,当鼠标悬停在链接上时,只需在我单击按钮后更改链接颜色
- 仅更改悬停javascript上的链接颜色
- 更改所有文档链接颜色Javascript
- 当鼠标悬停在父列表项上时改变链接颜色时的奇怪行为
- 使用同一个 css 文档的不同 html 页面上的不同链接颜色
- 在socialstatistics小部件上更改链接颜色
- 删除pdf中的链接颜色和下划线
- Javascript更改链接颜色错误