我可以在CSS中使用JavaScript只选择一个子div而不选择父div吗?

我可以在CSS中使用JavaScript只选择一个子div而不选择父div吗?,javascript,html,css,Javascript,Html,Css,我正在创建日历。当用户单击一个“day”元素时,我想让他们选择一个下拉时间。我有工作。我遇到的问题是,当选择下拉时间时,父“日”元素也是如此。这将在选择第一次时创建另一个带有时间的下拉列表。如何在JavaScript中创建只查找子元素而不查找父元素的if语句 JavaScript: function create_dropdown(day){ var insertdiv = document.createElement('select'); insertdiv.c

我正在创建日历。当用户单击一个“day”元素时,我想让他们选择一个下拉时间。我有工作。我遇到的问题是,当选择下拉时间时,父“日”元素也是如此。这将在选择第一次时创建另一个带有时间的下拉列表。如何在JavaScript中创建只查找子元素而不查找父元素的if语句

JavaScript:

function create_dropdown(day){
        var insertdiv = document.createElement('select');
        insertdiv.className = "times";;
        day.appendChild(insertdiv);
        for(var i=0;i<times_full.length;i++) {
            insertdiv.options[insertdiv.options.length] = new Option(times_full[i], i);
        }
    }

document.querySelectorAll(".day").forEach(day => {
    day.addEventListener("click", event => {
        event.currentTarget.classList.toggle("selected");
        if(event.currentTarget.classList.contains('selected'))
        {
            day.style.backgroundColor='#B0E0E6';
            create_dropdown(day);
        }
        else
        {
            day.style.backgroundColor='transparent';
        }
    });
});


var times_full = [
  "12:00 AM",
  "1:00 AM",
  "2:00 AM",
  "3:00 AM",
  "4:00 AM",
  "5:00 AM",
  "6:00 AM",
  "7:00 AM",
  "8:00 AM",
  "9:00 AM",
  "10:00 AM",
  "11:00 AM",
  "12:00 PM",
  "1:00 PM",
  "2:00 PM",
  "3:00 PM",
  "4:00 PM",
  "5:00 PM",
  "6:00 PM",
  "7:00 PM",
  "8:00 PM",
  "9:00 PM",
  "10:00 PM",
  "11:00 PM"
];
函数创建下拉列表(天){
var insertdiv=document.createElement('select');
insertdiv.className=“times”;;
日。追加子女(插入div);
对于(var i=0;i{
day.addEventListener(“单击”,事件=>{
event.currentTarget.classList.toggle(“选中”);
if(event.currentTarget.classList.contains('selected'))
{
day.style.backgroundColor='#B0E0E6';
创建_下拉列表(天);
}
其他的
{
day.style.backgroundColor='transparent';
}
});
});
var次_满=[
“上午12:00”,
“凌晨1点”,
“凌晨2点”,
“凌晨3点”,
“凌晨4点”,
“上午5:00”,
“早上6点”,
“上午7:00”,
“上午8:00”,
“上午9:00”,
“上午10:00”,
“上午11:00”,
“下午12:00”,
“下午1:00”,
“下午2:00”,
“下午三点”,
“下午四点”,
“下午五点”,
“下午6:00”,
“下午7:00”,
“晚上八点”,
“晚上9点”,
“晚上10:00”,
“晚上11:00”
];
元素图片:


保持当前代码的原样,除非在侦听器中添加
if(偶数.target.parentElement.matches('.day')){}

document.querySelectorAll(".day").forEach( day => {
    day.addEventListener("click", event => {
        if( event.target.parentElement.matches('.day') ) {
            event.currentTarget.classList.toggle("selected");
            // etc
        }
        
event.target
是实际单击的元素,而
currentTarget
是具有附加侦听器的元素)


谢谢!太好了。在没有看到下拉代码的情况下,我无法确定,但听起来好像时间中的单击也会传播到底层的一天,您需要停止。您能告诉我们在单击时间/下拉列表时发生的情况吗?