我正在尝试创建动态日历。我的第一步是在单击时将类添加到某些元素上。但是,在此过程中遇到了一个问题,classList.add('');。无法在HTML中使用。我不确定自己做错了什么。
<ul class="days">
<li onClick='#'>1<li>
<li onclick="this.classList.add('active')">2</li>
<li onClick='#'>3</li>
<li onClick='#'>4</li>
<li onClick='#'>5</li>
<li onClick='#'>6</li>
<li onClick='#'>7</li>
<li onClick='#'>8</li>
<li onClick='#'>9</li>
<li onClick='#'><span class="active">10</span></li>
</ul>
CSS
/* Highlight the "current" day */
.days li .active {
padding: 5px;
background: #1abc9c;
color: white
}
我正在尝试将onclick事件应用于数字2。但是classList.add('');不工作。我确信这是有原因的。任何帮助将不胜感激。
答案 0 :(得分:2)
由于您的CSS规则或DOM而无法使用。
.days li .active
将样式应用于类<li>
的{{1}}的子节点上,但是使用active
,您将this.classList.add('active')
类添加到{ {1}}标签,CSS规则应为active
。
答案 1 :(得分:1)
您的CSS选择器错误,您需要删除</script>
和public int getMatchingCustomerRecords(String keyword) {
int rows = 0;
try {
if (db.startTransaction()) {
String sql = "Select COUNT(firstName OR lastName) AS TOTAL FROM Customer";
String sqlSearch = "";
if (keyword != null) {
sqlSearch = sql + " WHERE firstName LIKE '%" + keyword + "%' AND lastName LIKE '%" + keyword + "%'";
ps = db.getQueryStatement(sqlSearch);
} else {
ps = db.getQueryStatement(sql);
}
rs = ps.executeQuery();
if (rs.next()) {
rows = rs.getInt("TOTAL");
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return rows;
}
之间的空格
喜欢
li
答案 2 :(得分:0)
首先,对于第一个li元素,您的html错误。
第二,我认为您可能被CSS选择器所误导,因为第10个li元素的内部具有跨度,而第2个li元素没有。 看看这个小提琴
https://jsfiddle.net/h6w7kaoy/1/
HTML:
<ul class="days">
<li onClick='#'>1</li>
<li onClick="this.classList.add('active')">2</li>
<li onClick='#'>3</li>
<li onClick='#'>4</li>
<li onClick='#'>5</li>
<li onClick='#'>6</li>
<li onClick='#'>7</li>
<li onClick='#'>8</li>
<li onClick='#'>9</li>
<li onClick='#'><span class="active">10</span></li>
</ul>
CSS:
li.active, li span.active {
color: blue;
font-weight: bold;
}
如果您尝试从css选择器中删除li.active
,将会看到单击li
元素不会影响视觉效果(但仍在添加类;-))>
答案 3 :(得分:0)
问题不在于classList
,而是选择器。 .days li .active
将选择active
内所有类别为<li>
的元素,而li
则为.days
类内的所有元素。黑白li
和.active
.days li.active