javascript - 如何使用 jQuery 切换一个元素而不使用其他元素?
问题描述
我想知道如何在不切换其他元素的情况下切换一个元素......我只是不想每次都这样做:
HTML:
<div class="share-toggle as-1"></div>
<div class="audio-share as1">
<p>Some Text</p>
</div>
<div class="share-toggle as-2"></div>
<div class="audio-share as2">
<p>Some Text</p>
</div>
JS:
$('.as-1').click(function() {
$('.as1').slideToggle('fast');
});
$('.as-2').click(function() {
$('.as2').slideToggle('fast');
});
有没有办法简单地写这个?请帮助...谢谢
解决方案
您可以使用 jQuery 选择所有className
包含某个子字符串的元素:
$('*[class*="as-"]')
这将选择 DOM ( *
) 中的所有元素,其中className
( [class=""]
) 包含"as-"
任何位置 ( *
)。
然后你可以使用传递的元素this
来获取元素的编号"as-"
并切换想要的元素:
$('*[class*="as-"]').click(function () {
let elemNum = this.className.match(/as-(\d+)/)[1];
$("as"+elemNum).slideToggle('fast');
});
推荐阅读
- python - 气流 BashOperator 在 Python 脚本之间传递参数
- vba - 查找匹配的重复项并为每个项涂上不同的颜色
- c - 查找数组中随机数的频率
- android - Xamarin.Android 中的 java.lang.IllegalStateException onCreate 活动
- python-3.x - anaconda 和 VScode 的问题
- javascript - Javascript和chart.js,如何将欧元货币添加到y标签
- regex - 学习如何使用正则表达式来验证电子邮件地址
- unity3d - 无法使用 Ui 按钮移动相机?
- html - HTML中的假视口
- flutter - 颤动的 html 小部件中禁用了 Youtube 全屏图标