我正在尝试使用此代码:
HTML:
<li><a class="main-but" href="#" id="click-no-po" onclick="porch_off('main-cpo');activeSelectPorOff();" >No Porch</a></li>
脚本:
function activeSelectPorOff() {
document.getElementById('click-no-po').setAttribute('class', 'main-but active');
document.getElementById('click-cpo').setAttribute('class', 'main-but');
}
potch_off
功能正常运行,但我似乎无法设置属性。
我不是最熟练的jQuery和JavaScript,但我正在努力。
答案 0 :(得分:1)
使用此选项添加Class:
$("#click-no-po").addClass('main-but active');
或者这样删除Class:
$("#click-no-po").removeClass('main-but active');
不要忘记使用ready函数来确保js代码找到ID。
答案 1 :(得分:1)
尝试切换课程
$('a.main-but').on('click',function(e){
e.preventDefault();
$(this).toggleClass("active");
});
.active{background:red;display:inline-block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a class="main-but" href="#">No Porch</a>
答案 2 :(得分:1)
如果您尝试使用jquery toggleClass
,请尝试这样的操作function activeSelectPorOff() {
$('click-po').toggleClass('main-but');
}
答案 3 :(得分:1)
首先,我在你的测试代码上,仅在元素&#39; a&#39;带有id,所以在你的功能中
function activeSelectPorOff() {
document.getElementById('click-no-po').setAttribute('class', 'main-but active');
document.getElementById('click-cpo').setAttribute('class', 'main-but');
}
document.getElementById(&#39; click-cpo&#39;)返回一个null元素,当你尝试用.setAttribute()读/写时,这个trhows和exeption你可以读取null的属性
function activeSelectPorOff() {
var a=document.getElementById('click-no-po');
var b=document.getElementById('click-cpo').setAttribute('class', 'main-but');
try{
a.setAttribute('class', 'main-but active');
}catch(e){
console.log(e)
}
try{
b.try{a.setAttribute('class', 'main-but active');
}catch(e){
console.log(e)
}
}
这应该避免函数停止,另一种方法是在尝试设置属性之前检查!= null