无法在javascript中设置元素的CSS样式
Not able to set CSS style of an element in javascript
hi我有一个带有一些列表元素的无序列表,我想设置一个css样式来突出显示所选的列表元素我正在尝试,但它对样式没有影响
function SelectThis(ctrl) {
var list = document.getElementById("myslidemenu").getElementsByTagName('li');
for (i = 0; i < list.length; i++) {
list[i].style.color = "blue";
}
ctrl.style.color = 'white';
}
我的html看起来像这个
<div id="myslidemenu" class="jqueryslidemenu">
<ul>
<li onclick="SelectThis(this);"><a href="Dashboard.aspx">Dashboard</a>
</li>
<li onclick="SelectThis(this);"><a href="Geofence.aspx">Geofence</a>
</li>
<li onclick="SelectThis(this);"><a href="Personnel.aspx">Personnel</a>
</li>
</ul>
<br style="clear: left" />
</div>
这个div标记在另一个div标记中,我不能以某种方式越过内部的div标记来更改Ul 中所选的li
我的css就像这个
.jqueryslidemenu ul li a:hover{
background: black; /*tab link background during hover state*/
color: Yellow;
}
.jqueryslidemenu{
font: bold 12px Arial;
background: #414141;
width: 100%;
}
.jqueryslidemenu ul{
margin: 0;
padding: 0;
list-style-type: none;
}
/*Top level list items*/
.jqueryslidemenu ul li{
position: relative;
display: inline;
float: left;
}
/*Top level menu link items style*/
.jqueryslidemenu ul li a{
display: block;
background: #414141; /*background of tabs (default state)*/
color: white;
padding: 8px 10px;
border-right: 1px solid #778;
color: #2d2b2b;
text-decoration: none;
height: 1%;
}
您应该更改<a>
元素的样式,而不是<li>
。<li>
的样式已更新,但<a>
有自己的样式,应该用JS覆盖。
您是否要更改背景?像那样?
我在测试中删除了锚,这样就不会产生404个错误。
function SelectThis(ctrl) {
var list = document.getElementById("myslidemenu").getElementsByTagName('li');
for (i = 0; i < list.length; i++) {
list[i].style.background = 'blue';
}
ctrl.style.background = 'white';
}
您正在尝试的操作不起作用,因为您的页面正在刷新
例如,如果你点击链接,浏览器会重定向你的链接
所以点击页面加载后,你可以查看当前页面,在菜单中找到链接,并为提供css
将此脚本放入页面
$(document).ready(function () {
var page = top.location.toString().split("/");
alert(page[page.length - 1].toString());
$('#myslidemenu li').css('color', 'blue');
$('#myslidemenu').find('a[href="' + page[page.length - 1].toString() + '"]').closest('li').css('color', 'white');
});
在文档就绪时,它获取页面名称并找到包含href=当前页面的锚标记,并更改其最接近的li颜色;
相关文章:
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 如何使用css动画/javascript使具有背景图像的元素出现
- JQuery-动态创建的元素css不起作用
- 如何使用jquery动态更改DOM元素CSS类
- JS+更改元素CSS+命名锚点
- Javascript获取元素CSS过渡阶段
- 聚合物元素css未显示-检查器中没有错误
- jQuery:获取元素 CSS 值
- 在按钮单击Javascript时添加元素CSS属性后动态更改元素CSS属性
- 中心元素css三维变换
- AngularJS:重置angular.元素CSS改变
- 我想悬停一个元素来影响其他元素css
- 多个存储元素.css()
- 如果窗口调整大小,jQuery将检查元素css属性
- 如何将元素css转换为JSON
- 在长时间执行过程之前和之后使用Jquery更改元素css
- 移除元素css后的::
- jQuery - 有没有办法“保存”dom元素(css)的状态并恢复到保存的状态等
- 渲染图像操作哪个更快:HTML5画布元素,还是操作DOM元素? 'CSS与JS/jQuery
- 如何保存一个网页快照与它的所有元素(css, js,图像,…)到一个文件