javascript - 单击下划线后使用jquery更改类名
问题描述
我想用单击的 id 替换类名。但条件是,我要更改的类名(“filter-”)的开头。
例如:
<div class="change filter-" id="changeMe"></div>
<div class="list">
<div class="click" id="first"></div>
<div class="click" id="second"></div>
<div class="click" id="third"></div>
</div>
当你点击#first
thenfilter-
必须是filter-first
这样的:
<div class="change filter-first"></div>
它通常可以用addClass
和来完成removeClass
。但是有没有办法用正则表达式做到这一点?
解决方案
这里不需要 jQuery。
const changeMe = document.getElementById('changeMe');
for (const listItem of document.querySelectorAll('.click')) {
listItem.addEventListener('click', function() {
changeMe.className = `change first-${listItem.id}`
})
}
.click::before { content: attr(id); }
#changeMe::before { content: attr(class); }
<div class="change" id="changeMe"></div>
<hr>
<div class="list">
<div class="click" id="first"></div>
<div class="click" id="second"></div>
<div class="click" id="third"></div>
</div>
如果出于某种原因你坚持使用 jQuery:
const $changeMe = $('#changeMe');
$('.click').on('click', function() {
$changeMe.attr('class', `change first-${this.id}`);
})
.click::before {
content: attr(id);
}
#changeMe::before {
content: attr(class);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="change" id="changeMe"></div>
<hr>
<div class="list">
<div class="click" id="first"></div>
<div class="click" id="second"></div>
<div class="click" id="third"></div>
</div>
推荐阅读
- python - 通过 xpath 查找元素,其中 xpath 具有变量
- javascript - 我在 firebase.auth.ApplicationVerifier 有问题
- node.js - Node.js > 在将数据写入文件时以只读模式打开 .csv 文件
- python - Geopandas 在更改 crs 并使用 fig,ax 绘图时绘制空(没有 fig,ax 一切都很好)?
- gradle - gradle 前缀排除依赖项
- git - 如何从远程 git repo 中排除二进制文件?
- python - 使用 ImageAI 我得到 => AttributeError: module 'tensorflow' has no attribute 'to_float'
- php - htmlspecialchars() 期望参数 1 是字符串,给定对象 - Laravel 错误邮件程序
- c++ - 当 n = 5 时,为什么“完成!”部分打印了 5 次,即使它是在递归调用语句之后?
- javascript - 将输入添加到 div