选择一组CSS选择器

时间:2015-06-03 19:04:08

标签: javascript jquery css

在我正在开发的项目中,我们想要为用户设置的一个约定是,当我们打开一个模态时,我们会自动聚焦打开的模态的第一个元素,它可以接受输入(无论是输入还是下拉列表。)执行此操作的jQuery代码 easy

$firstElement.focus();

问题在于获得第一个元素。

我们的应用程序的模态有时以input开头(例如文本,复选框,日期等),但有时会以select开始(例如下拉菜单)。因此,获取$firstElement有点挑战,因为我需要执行类似以下伪代码的选择:

(input, select):first

然而,根据我对CSS选择器的了解,我能够获得的最接近的是:

input:first, select:first

问题:使用CSS选择器,我能以什么方式选择一组输入和选择的第一个元素?或者,我是否需要更复杂的JavaScript实现来执行“重点关注”第一个输入'我试图做的事情?

3 个答案:

答案 0 :(得分:4)

试试这个:

var $firstElement = $("input, select, textarea").first();

<强>附录:

如果您使用的是隐藏的inputs,那么还有一种解决方法:

var $firstElement = $("input, select, textarea").filter(':visible:first');

答案 1 :(得分:1)

您可以使用$.fn.first()

  

将匹配元素集减少到集合中的第一个元素。

$('input, select').first().focus();

答案 2 :(得分:0)

select 
person from
(

    Select
    person,
    count (case when service like'Type1%' then 1 else null end) as Type1,
    count (case when service like 'Type2%' then 1 else null end) as Type2
    from
    <your table>
    group by person
    ) t 
    where 
    (type1 > 2 or type2 > 3)

这是我用于将焦点保持在模态中的代码的一部分。希望它有所帮助。