Ano*_*ath 4 html javascript jquery if-statement append
我有列表,我通过jQuery插入图像.
$("#icon1").html('<img src="images/summary_icon_u.png" />');
Run Code Online (Sandbox Code Playgroud)
这是我的清单
<ul>
<li data-menuanchor="firstPage" class="one">
<a href="#firstPage" class="cmIcon" id="icon1"></a>
</li>
<li data-menuanchor="secondPage" class="two">
<a href="#secondPage" class="cmIcon" id="icon2"></a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我这样的导航列表很少.单击每个列表时,将调用"活动"类.
我需要的是当我点击列表时,如果列表中有"活动"类,那么它应该附加一个html,否则它应该附加另一个html.
这是我下面的代码我试过但没有工作.
$(document).ready(function() {
$('li.one').click(function() {
if ($(this).hasClass('active')) {
$("#icon1").html('<img src="images/summary_icon_u.png" />');
} else {
$("#icon1").html('<img src="images/summary_icon_c.png" />');
}
});
$('li.two').click(function() {
if ($(this).hasClass('active')) {
$("#icon2").html('<img src="images/audi_risk_u.png" />');
} else {
$("#icon2").html('<img src="images/audi_risk_c.png" />');
}
});
});
Run Code Online (Sandbox Code Playgroud)
提前致谢.
您需要将代码放入li.one元素的单击处理程序中.试试这个:
$(document).ready(function() {
$('li.one').click(function() {
if ($(this).hasClass('active')) {
$("#icon1").html('<img src="images/summary_icon_u.png" />');
} else {
$("#icon1").html('<img src="images/summary_icon_c.png" />');
}
});
});
Run Code Online (Sandbox Code Playgroud)
请注意,您还可以使用三元表达式缩短此代码:
$(document).ready(function() {
$('li.one').click(function() {
$("#icon1").html('<img src="images/summary_icon_' + ($(this).hasClass('active') ? 'u' : 'c') + '.png" />');
});
});
Run Code Online (Sandbox Code Playgroud)
现在您已经添加了当前的HTML和JS代码,我可以看到您可以使用单个事件处理程序来干掉代码,该处理程序从当前遍历DOM li以查找相关a元素.试试这个:
$(document).ready(function() {
$('li').click(function() {
$(this).find('a').html('<img src="images/summary_icon_' + ($(this).hasClass('active') ? 'u' : 'c') + '.png" />');
});
});
Run Code Online (Sandbox Code Playgroud)