我的页面上有一堆 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/