Jquery 选择器获取所有带有 ID 模式的选择下拉列表

Posted

技术标签:

【中文标题】Jquery 选择器获取所有带有 ID 模式的选择下拉列表【英文标题】:Jquery selector to get all select dropdowns with ID pattern 【发布时间】:2013-10-06 09:33:24 【问题描述】:

使用 jquery 遍历 ID 与模式匹配的所有选择下拉列表的最简单方法是什么?例如:

<select id="begin_1_end">...</select>

<select id="begin_32_end">...</select>

<select id="begin_42_end">...</select>

<select id="dontgetme_2_end">...</select>

<select id="begin_12_dontgetme">...</select>

仅遍历前 3 个选择。

【问题讨论】:

类似:***.com/questions/1487792/… 【参考方案1】:

用attribute-starts-with-selector/试试这个

$('select[id^="begin"]').each(function () 
    console.log(this.id);
);

或者你可以使用attribute-ends-with-selector

$('select[id$="end"]').each(function () 
    console.log(this.id);
);

更新

要选择前 3 个,您可以像这样使用:lt(3)

$('select[id^="begin"]:lt(3)').each(function () 
    console.log(this.id);
);

DEMO

更新

要组合选择器,您可以这样做

$('select[id^="begin"][id$="end"]').each(function () 
    console.log(this.id);
);

DEMO

如果你想选择一个 id 以 begin OR end 开头的元素,你可以使用, 来获得两个不同的选择器

$('select[id^="begin"],select[id$="end"]').each(function () 
    //                ^
    console.log(this.id);
);

DEMO

【讨论】:

谢谢。你如何结合开始和结束模式?请参阅更新的问题。谢谢。有时开始模式匹配但不匹配结束模式。 在您更新的问题中,您只想选择前三个,那么我的答案中最近的更新之一应该可以工作。你测试过吗? @RayS。【参考方案2】:

使用属性starts with selector,然后使用.each()遍历它们

$('select[id^=begin_]').each(function()...)

【讨论】:

【参考方案3】:

尝试使用attribute starts with selector

  $("select[id^='begin_'").each(function()
  //your stuff
  )

【讨论】:

以上是关于Jquery 选择器获取所有带有 ID 模式的选择下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

jquery 选中文本框 jquery 文本框样式 jquery 改变样式

jQuery 选择器

jQuery 选择器 (基础恶补)

松软科技课堂:jQuery 选择器

jQuery基础--样式篇

带有 ID 的 jQuery 选择器的性能