如何解决将类添加到要加载到页面中的元素
<div class="topnav" id="myTopnav">
<a href="Index.html" id="home"><i class="fa fa-fw fa-home"></i>Home</a>
<a href="Drinks.html" id="drinks"><i class="fa fa-fw fa-coffee"></i>Drinks</a>
</div>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#content').load("Header.html");
});
</script>
</head>
<header class="head">
<div id="content"></div>
</header>
现在,我正在尝试向“ a href” -Tag动态添加一个类,以使其处于活动状态,但这不起作用。我试图在“ head” -Tag中编写另一个函数:
<script>
function addAct() {
var element = document.getElementById("#home");
element.classList.add(".active");
};
</script>
,并在调用加载函数后立即在“ head” -Tag中手动调用它:
<script>addAct()</script>
这似乎不起作用。我尝试了很多其他解决方案,但找不到任何有效的方法。 有人可以帮忙吗?
非常感谢!
解决方法
您是否尝试在.load()中使用complete
回调
像这样:
$(document).ready(function(){
$('#content').load("Header.html",function(){
// complete loading
$('#home').addClass('active')
});
});
如果您使用本机js,则无需在classList.add('active')
中设置点(。),如果添加点,则会得到<div class=".active"></div>
.load()方法是异步的。因此,您需要利用 complete 回调(即:只有当您拥有数据时,才能应用该类)。
此外,您还有一些错误:
-
从document.getElementById(“#home”)更改为document.getElementById(“ home”)
-
与element.classList.add(“。active”);的更改;到element.classList.add(“ active”);
代码:
$('#content').load("https://gist.githubusercontent.com/gaetanoma/7b7ad4592c2b69e14b7cbe0c888ef1be/raw/3cbf59473c5f55a1db5a29f51498f3e9d6739e9b/Header.html",function() {
var element = document.getElementById("home");
element.classList.add("active");
});
.active {
background-color: yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<header class="head">
<div id="content"></div>
</header>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。