我有一个XSL创建了多个元素,其id为"createdOn"加上$ unique-id
Example : createdOnid0xfff5db30
Run Code Online (Sandbox Code Playgroud)
我想使用JavaScript在变量中找到并存储它们.我试过了
var dates = document.getElementsById(/createdOn/);
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.
Phr*_*ogz 77
使用jQuery,你可以使用attr启动选择器:
var dates = $('*[id^="createdOnid"]');
Run Code Online (Sandbox Code Playgroud)
使用现代浏览器,您可以使用以选择器开头的CSS3属性值以及querySelectorAll:
var dates = document.querySelectorAll('*[id^="createdOnID"]');
Run Code Online (Sandbox Code Playgroud)
但是对于旧浏览器的后备(并且没有jQuery),您需要:
var dateRE = /^createdOnid/;
var dates=[],els=document.getElementsByTagName('*');
for (var i=els.length;i--;) if (dateRE.test(els[i].id]) dates.push(els[i]);
Run Code Online (Sandbox Code Playgroud)
Dau*_*aut 13
您应该刚刚将简单CSS 选择器 与JavaScript's.querySelectorAll()方法一起使用。
在你的情况下:
var dates = document.querySelectorAll('[id^="createdOnId"]');
Run Code Online (Sandbox Code Playgroud)
因为你没有标记jQuery,并且你可能不需要它,我的建议是在创建它们时为这些元素添加一个类.然后使用大多数浏览器中内置的getElementsByClassName()函数.对于IE浏览器,你将需要添加类似这样:
if (typeof document.getElementsByClassName!='function') {
document.getElementsByClassName = function() {
var elms = document.getElementsByTagName('*');
var ei = new Array();
for (i=0;i<elms.length;i++) {
if (elms[i].getAttribute('class')) {
ecl = elms[i].getAttribute('class').split(' ');
for (j=0;j<ecl.length;j++) {
if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) {
ei.push(elms[i]);
}
}
} else if (elms[i].className) {
ecl = elms[i].className.split(' ');
for (j=0;j<ecl.length;j++) {
if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) {
ei.push(elms[i]);
}
}
}
}
return ei;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53405 次 |
| 最近记录: |