如何在javascript而不是jquery中更改父div的css
如果我单击父div的子div,我想更改父div的CSS,而不是,例如,如果我单击href标记。我想更改其class=“changed\u area”的CSS 我该怎么做如何在javascript而不是jquery中更改父div的css,javascript,Javascript,如果我单击父div的子div,我想更改父div的CSS,而不是,例如,如果我单击href标记。我想更改其class=“changed\u area”的CSS 我该怎么做 var up_btn=document.getElementsByClassName('up_btn'); var up_btn_length=up_btn.length; var changed_area=document.getElementsByClassName('changed_area'); var changed
var up_btn=document.getElementsByClassName('up_btn');
var up_btn_length=up_btn.length;
var changed_area=document.getElementsByClassName('changed_area');
var changed_area_length=changed_area.length;
对于(变量i=0;i
图像;?>" />
穆罕默德
我想你可以这样做:
编辑:更好的方法
for (var i = 0; i < up_btn_length; i++) {
up_btn[i].addEventListener('click', function(){
var changed_area = up_btn[i].parentElement;
if ( changed_area.classList.contains('changed_area') ) {
changed_area.classList.remove('changed_area')
}
else {
changed_area.classList.add('changed_area')
}
if(changed_area.style.top == '-100%') {
changed_area.style.top = '0%';
}
else {
changed_area.style.top = '-100%';
}
});
}
for(变量i=0;i
只需在父级上添加事件侦听器,然后使用currentTarget
const parent = document.getElementsByClassName('changed_area');// select parent
for (var i = 0; i < parent.length; i++) {
parent[i].addEventListener('click', (ev) => ev.currentTarget.className = 'clicked');
}
const parent=document.getElementsByClassName('changed_area');//选择父项
对于(变量i=0;iev.currentTarget.className='clicked');
}
你的代码会影响你所有的div,我认为这不是你想要的 要使用javascript访问父元素,您可以使用
parentElement
。要获取父元素的父元素…如果满足某些条件(如拥有类),您可以执行以下操作:
function Get_changed_area(targetElement){
var parent = targetElement.parentElement;
if(parent.hasClass('changed_area'))
return parent;
else Get_changed_area(parent) //repeat the function for parent
}
for (var i = 0; i < up_btn_length; i++) {
up_btn[i].addEventListener('click', function() {
changed_area = Get_changed_area(up_btn[i]);
if (changed_area.style.top == '-100%') {
changed_area.style.top = '0%';
}
else {
changed_area.style.top = '-100%';
}
}
}
函数获取更改区域(targetElement){
var parent=targetElement.parentElement;
if(parent.hasClass('changed_area'))
返回父母;
else Get\u changed\u area(parent)//对parent重复该函数
}
对于(变量i=0;i
此外,如果要确保选择正确的div,可以使用'up_btn[i]'的属性'parentElement'(因为当前如果没有相同数量的div和按钮,则会出现错误)。例如,如果放置另一个没有parentDiv的按钮,“changed_区域[i]'将是未定义的。我已使用此解决方案编辑了我的帖子。如何?我想你的意思是“祖先”而不是“父”,是“后代”而不是“子”。如果我错了,请更正。请参阅: