gpt4 book ai didi

jquery - 多个选择器不适用于上下文

转载 作者:行者123 更新时间:2023-12-01 07:29:25 25 4
gpt4 key购买 nike

我试图在聚焦时选择一些表单元素:

$('textarea, input, select', '.highlightRow').live('focusin', function(e){ $(this).css("背景颜色","黄色") ; });

但是多个选择器和上下文有问题

当我使用上下文和表单没有 .highlightRow 时,我的文本区域不会更改 bgcolor (没关系),但列表中的下一个元素(输入、选择)会更改 bgcolor (这是错误的)

示例:http://jsfiddle.net/RgEAw/1/

现在只有不太优雅的解决方案可以工作:

$('.highlightRow 输入, .highlightRow .highlightRow 选择, .highlightRow 文本区域')...

在这种情况下是否有可能使用这个多重选择器和上下文?

最佳答案

根据jQuery doc ,上下文必须是“DOM 元素、文档或 jQuery”。它本身不能是字符串选择器。

因此,当您指定此内容时:

$('textarea, input, select', '.highlightRow')

您显然试图指定 '.highlightRow' 的上下文,这不是指定上下文的记录方法之一。在这种特殊情况下,您可以获取 '.highlightRow' 的单个 DOM 元素,将其转换为 jQuery 对象或将其放入实际选择器中。

但是,只有当您传递的对象确实存在时,上下文才会起作用。如果它不存在,那么就像您传递了一个 NULL 上下文,这意味着搜索整个文档,因此它不会执行您想要的操作。因此,您只能在选择器中实际存在上下文参数时使用它。

我建议使用这个:

$('.highlightRow textarea, .highlightRow input, .highlightRow select')

这里的工作演示:http://jsfiddle.net/jfriend00/uzYuQ/ .

关于jquery - 多个选择器不适用于上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7395508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com