javascript - 我可以使用什么选择器来排除带后缀的 ID?

标签 javascript jquery

我的页面上有一堆 div(bg_1、bg_5、bg_112 等),我想为其分配样式“display:inline-block”。

但是,我还有其他名为 bg_1_log、bg_5_log、bg_112_log 等的 div,我不想为其分配此样式。

我已经尝试过:

 $('[id^=bg_]').attr('style','display:inline-block');

这可行,但当然会将样式分配给以“bg_”开头的所有 div,包括bg_112_log...

如何“为所有只是 bg_+number 的 div 分配样式?

我正在使用 jQuery,所以无论是 jQuery 还是 JS 都可以。

最佳答案

您可以使用not来使用选择器和 attribute contains selector像:

$('[id^=bg_]').not('[id*=_log]')

或者,您也可以按照 @zfrisch 的建议使用正则表达式,但这是一个改进版本(选择器不仅限于 div):

$('*').filter(function() { return this.id.match(/bg_\d$/) })

或者,甚至像:

$('*').attr('id').match(/bg_\d$/)

关于javascript - 我可以使用什么选择器来排除带后缀的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53287445/

相关文章:

javascript - 突出显示 Vue.js 中新插入的行

javascript - 我可以更快地从文本框中收集多个变量吗?

javascript - 使用淡入淡出和追加

javascript - Jquery 用户界面实时 () : Focusing on events other than 'click'

javascript - 给定三个点创建两个平行平面(Javascript)

javascript - 用于动态生成复选框的 v-model

javascript - 如何解除脚本与dom元素的绑定(bind)?

javascript - Jquery .hasClass() 方法不适用于 dom 单击事件检查

javascript - DOMNodeInserted 未按预期工作?

javascript - MouseOver 和 MouseLeave 上的随机文本显示真实文本