📅  最后修改于: 2023-12-03 15:27:56.842000             🧑  作者: Mango
当我们想要在页面中动态更改元素的选择器时,可以使用 jQuery 中的 .filter()
方法。该方法可以根据指定的选择器过滤当前的元素集合。
假设有一个列表,我们想要根据用户的选择来动态更改列表项的选择器,以实现样式的更改。HTML 代码如下:
<ul>
<li class="item1">列表项1</li>
<li class="item2">列表项2</li>
<li class="item1">列表项3</li>
<li class="item2">列表项4</li>
</ul>
我们可以使用以下 jQuery 代码来实现:
$('input[type="radio"]').on('change', function() {
var selector = '.' + $(this).val(); // 获取选中的单选框的值,即要筛选的选择器
$('ul li').removeClass('active');
$('ul li').filter(selector).addClass('active'); // 根据选择器筛选并添加 active 类
});
在上述示例中,我们先监听单选框的变化事件,获取选中的单选框的值(即要筛选的选择器),然后使用 .removeClass()
方法移除列表项的 active 类,最后使用 .filter()
方法过滤出符合要求的列表项并添加 active 类。
.filter()
方法对当前元素集合进行过滤,并返回符合指定选择器的新集合,但并不会改变当前元素集合。.filter()
方法时,注意指定选择器的格式,例如以 .
开头表示类名,以 #
开头表示 ID 等。.addClass()
、.removeClass()
、.toggleClass()
等 jQuery 方法来动态改变元素的类,样式等属性。以上就是使用 jQuery 中的 .filter()
方法来动态更改元素选择器的简单示例。