js如何獲得所有相似(相同的前綴)的ID?

BILLSSJONE 2008-09-09 02:14:51
網頁有幾個id名前綴都是相同的,而後綴不同也沒有規律,如有aa_ : aa_a,aa_b,aa_3
用js怎麼得知速整個網頁共有多少個這樣前綴的id?和如何操作這些ID?
...全文
1388 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
wubiandean 2011-10-17
  • 打赏
  • 举报
回复
对我有帮助,顶下
daols 2008-09-11
  • 打赏
  • 举报
回复
猜测,,,未测试。。。

var x=document.getElementsByTagName('*');var y='';
for (var i=0;i<x.length;i++){if (x[i].id.toLowerCase().indexOf('aa_')==0) y=y+x[i].id+'\n';}
document.body.innerHTML=document.body.innerHTML+'<pre>IdList:\n'+y+'<\/pre>';
sxlfybb 2008-09-11
  • 打赏
  • 举报
回复
只能遍历比较,只是在遍历比较的效率上有区别而已
剑心永远OK 2008-09-10
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 chinmo 的回复:]
再说form裡面控件的name相同傳值也不会出错

可以使用split分割分别得到他们的值
[/Quote]
不用上班么?
  • 打赏
  • 举报
回复
再说form裡面控件的name相同傳值也不会出错

可以使用split分割分别得到他们的值
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 BILLSSJONE 的回复:]
引用 20 楼 chinmo 的回复:
引用 10 楼 BILLSSJONE 的回复:
如果後綴是有規律的呢?比如aa_1, aa_2, aa_3
不偏歷整個網頁,如何獲得它們的總數?然後就可以用("aa_"+i)來操作了。


这个有一个办法,就是所有带有aa这个的,都使用同一个name,区别与其他的name,然后document.getElementByName("name").length就可以获取总数了

要是應用在form裡面就有問題,form裡面控件的name相同傳值就出錯了。
[/Quote]


[Quote=引用 28 楼 BILLSSJONE 的回复:]
定義一致可以不用偏歷整個網頁就獲取相同後綴id的總數,document.getElementByName("name").length
[/Quote]

佩服

说话前后矛盾

如果让你做生意,没人敢与你做生意了
BILLSSJONE 2008-09-10
  • 打赏
  • 举报
回复
定義一致可以不用偏歷整個網頁就獲取相同後綴id的總數,document.getElementByName("name").length
xchh1220 2008-09-10
  • 打赏
  • 举报
回复
getElementsByTagName,别用getElementsByName
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 BILLSSJONE 的回复:]
引用 25 楼 chinmo 的回复:
晕死,不是说了吗?都使用同一个name,区别与其他的name

你还要用别的控件与他相同

按你这么说就没得做了!!

可能是這樣的啊 <input type="text" id="aa_1"> <input type="text" id="aa_2">
這樣就不能用同一個name了,所以想自定義屬性代替name,效果相同又不影響傳值。
[/Quote]

干吗可能啊!!

命名是自己定义的,又不是不可修改的

你干吗要让他定义一致的??
BILLSSJONE 2008-09-09
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 chinmo 的回复:]
晕死,不是说了吗?都使用同一个name,区别与其他的name

你还要用别的控件与他相同

按你这么说就没得做了!!
[/Quote]
可能是這樣的啊<input type="text" id="aa_1"> <input type="text" id="aa_2">
這樣就不能用同一個name了,所以想自定義屬性代替name,效果相同又不影響傳值。
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 BILLSSJONE 的回复:]
引用 20 楼 chinmo 的回复:
引用 10 楼 BILLSSJONE 的回复:
如果後綴是有規律的呢?比如aa_1, aa_2, aa_3
不偏歷整個網頁,如何獲得它們的總數?然後就可以用("aa_"+i)來操作了。


这个有一个办法,就是所有带有aa这个的,都使用同一个name,区别与其他的name,然后document.getElementByName("name").length就可以获取总数了

要是應用在form裡面就有問題,form裡面控件的name相同傳值就出錯了。
[/Quote]

晕死,不是说了吗?都使用同一个name,区别与其他的name

你还要用别的控件与他相同

按你这么说就没得做了!!
  • 打赏
  • 举报
回复
var objs = document.getElementsByTagName("block");
BILLSSJONE 2008-09-09
  • 打赏
  • 举报
回复
對象都有屬性,比如name,id,value,可不可以自定義屬性然後操作它?
比如自定義block屬性賦給它相同值,
<div id="aa_1" block="aa">
<div id="aa_2" block="aa">
<div id="aa_3" block="aa">

但這句document.getElementByName("name").length應該怎麼改?因為不是name
BILLSSJONE 2008-09-09
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 chinmo 的回复:]
引用 10 楼 BILLSSJONE 的回复:
如果後綴是有規律的呢?比如aa_1, aa_2, aa_3
不偏歷整個網頁,如何獲得它們的總數?然後就可以用("aa_"+i)來操作了。


这个有一个办法,就是所有带有aa这个的,都使用同一个name,区别与其他的name,然后document.getElementByName("name").length就可以获取总数了
[/Quote]
要是應用在form裡面就有問題,form裡面控件的name相同傳值就出錯了。
BILLSSJONE 2008-09-09
  • 打赏
  • 举报
回复
有innerHTML可能會出錯,innerHTML不只判斷網頁代碼,連網頁內文也會判斷,如這樣就會多出一個了<div id="aa_1">aa_1是一個...</div>
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 BILLSSJONE 的回复:]
如果後綴是有規律的呢?比如aa_1, aa_2, aa_3
不偏歷整個網頁,如何獲得它們的總數?然後就可以用("aa_"+i)來操作了。
[/Quote]

这个有一个办法,就是所有带有aa这个的,都使用同一个name,区别与其他的name,然后document.getElementByName("name").length就可以获取总数了
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 net_lover 的回复:]
var objs = document.getElementById("xID").getElementsByTagName("div")

把这些div放在一个id=xID的里面可以这样
[/Quote]
这个方法有所限制,假如他有很多个不在同一个里面的,那一样得遍历
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 cgisir 的回复:]
这样呢? 不知道效率怎么样

HTML code<div id="aa_a"></div><div id="aa_3"></div>
<div id="aa_a"></div><div id="aa_3"></div>
<div id="aa_a"></div>
<script>
function getDiv(fr){
var str = document.body.innerHTML;
var reg = new RegExp('\\b'+fr+'.+\\b','gi');
var arr = str.match(reg);
arr ? alert(arr.length) : alert('没有找到id前缀为 '+fr+' 的元素');

[/Quote]

这个也是遍历
cgisir 2008-09-09
  • 打赏
  • 举报
回复
这样呢? 不知道效率怎么样
<div id="aa_a"></div><div id="aa_3"></div>
<div id="aa_a"></div><div id="aa_3"></div>
<div id="aa_a"></div>
<script>
function getDiv(fr){
var str = document.body.innerHTML;
var reg = new RegExp('\\b'+fr+'.+\\b','gi');
var arr = str.match(reg);
arr ? alert(arr.length) : alert('没有找到id前缀为 '+fr+' 的元素');
}

window.onload = function(){getDiv('aa_')}
</script>
孟子E章 2008-09-09
  • 打赏
  • 举报
回复
var objs = document.getElementById("xID").getElementsByTagName("div")

把这些div放在一个id=xID的里面可以这样
加载更多回复(14)

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧