我有一個創建了「createdOn」的ID加一個$唯一ID查找ID開始相同的字符串的所有元素
Example : createdOnid0xfff5db30
我想找到和這些存儲在多個元素一個XSL使用JavaScript的變量。我試過
var dates = document.getElementsById(/createdOn/);
但似乎並沒有工作。
我有一個創建了「createdOn」的ID加一個$唯一ID查找ID開始相同的字符串的所有元素
Example : createdOnid0xfff5db30
我想找到和這些存儲在多個元素一個XSL使用JavaScript的變量。我試過
var dates = document.getElementsById(/createdOn/);
但似乎並沒有工作。
使用jQuery你可以使用attr starts with選擇:
var dates = $('*[id^="createdOnid"]');
使用現代的瀏覽器,你可以用querySelectorAll
一起使用CSS3 attribute value begins with選擇:
var dates = document.querySelectorAll('*[id^="createdOnID"]');
但對於舊的瀏覽器的回退(和沒有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]);
的Bec因爲你沒有標記jQuery,你可能不需要它,我的建議是在創建它們時爲這些元素添加一個類。然後使用內置於大多數瀏覽器中的getElementsByClassName()函數。對於IE瀏覽器,你將需要添加類似this:
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;
}
}
通過創建一個正則表達式,測試特定類的className可以更容易,更快速: var lookingFor = new RegExp('(?:^ | \\ s)'+ arguments [0] +'(?:\\ s | $)'); ... if(lookingFor.test(el.className)){...}' – Phrogz 2012-04-11 18:29:15
function idsLike(str){
var nodes= document.body.getElementsByTagName('*'),
L= nodes.length, A= [], temp;
while(L){
temp= nodes[--L].id || '';
if(temp.indexOf(str)== 0) A.push(temp);
}
return A;
}
idsLike('createdOn')
嘗試以下操作:
var values = new Array(valueKey_1);
var keys = new Array("nameKey_1");
var form = document.forms[0];
for (var i = 0; i < form.length; i++) {
name = form.elements[i].name;
var startName = name.toLowerCase().substring(0, 18);
if (startName == 'startStringExample') {
values.push(name.value);
keys.push(name);
}
}
的[的getElementById()通配符]可能的複製(http://stackoverflow.com/questions/4275071/getelementbyid-wildcard) – Liam 2017-05-12 12:28:45