从字符串中检测CSS选择器的类型
Detecting the type of CSS selector from a string
我有一些JSON,其中包含数千种不同的CSS选择器,下面是各种示例…
"#mid_ad_title",
"#mid_mpu",
"#mid_roll_ad_holder",
".SidebarAdvert",
".SitesGoogleAdsModule",
".SkyAdContainer",
"a[href$='"/vghd.shtml'"]",
"a[href*='"/adrotate/adrotate-out.php?'"]",
"a[href^='"http://ad-apac.doubleclick.net/'"]",
"#mn #center_col > div > h2.spon:first-child + ol:last-child",
"#resultspanel > #topads",
"#rhs_block > #mbEnd"
如你所见,JSON是由多种选择器组成的——有些只是一个类,有些只是一个ID,还有一些是混合选择器。我想根据选择器的类型使用相关的JavaScript"get"方法,所以对于只是id的选择器,我会使用document.getElementById()
等。
有没有人知道任何正则表达式或东西,将告诉我选择器的类型,当我通过JSON循环?即"class", "id", "other"
我想你会在switch
中找到更多的用途:
var results = [];
for(var i = 0; i < selectors.length; i++){
var s = selectors[i];
if( s.indexOf(' ') !== -1){
s = s.substring(0, s.indexOf(' '));
}
switch(selectors[i][0]){
case '#': // ID
results.push(document.getElementById(s.substr(1)));
break;
case '.': // Class
results.push(document.getElementsByClassName(s.substr(1)));
break;
default: // Tag
results.push(document.getElementsByTagName(s));
break;
}
}
然而唯一可靠的解决方案是使用:
document.querySelectorAll(selector);
相关文章:
- 检查选择器类型jquery
- 什么's是jQuery选择器返回的包装集的类型
- 如何为表单提交添加选择器,仅当特定按钮类型导致表单提交时
- 自动完成输入类型日期选择器
- jQuery 图层选择器类型插件或可自定义的列表视图插件
- 错误“属性'日期选择器'在带有打字稿的类型'IAugmentedJQuery'上不存在
- 类型错误: $(..).日期选择器不是一个函数
- 错误:类型错误: $(..).选择选择器不是使用 requireJS 加载的函数库
- 如何在 Javascript 中重置电子邮件输入类型选择器
- 获取类型错误:e 未定义与 js 插件日期时间选择器
- 未捕获的类型错误:undefined不是日期选择器中的函数
- 如何使用javascript或jquery在switch语句中获取选择器类型
- JQuery日期选择器设置输入[类型=“文本”]
- 仅获取输入类型文本,而不获取选择器字段
- 检索jquery选择器的对象类型
- jquery css选择器使用输入类型Error
- tr表中的选择器和数据类型
- 为什么JQuery NOT选择器在类型提交时失败,但在类型按钮上有效
- jQuery目标选择器的输入类型和表单名称
- 寻求在没有邀请/请求的情况下实现朋友选择器类型功能