js怎么取它的index啊??【简单问题,纯属送分,不懂】

RUNBEAR 2010-02-04 10:11:38

<p>a</P>
<p>b</P>
<p>c</P>
<p>d</P>

js怎么取这几个p的index啊?就是在p标签中各自的index。
JQUERY:$("p").click(function(){});这样是为所有的p标签定义点击事件。
那js怎么为p标签统一定义点击事件啊?
求代码。
...全文
155 18 打赏 收藏 举报
写回复
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
tenfyguo 2010-02-06
  • 打赏
  • 举报
回复
其实很简单,用dom自身的document.getElementsByTagName方法就ok了,对经常使用jquery库的开发者,个人觉得非常有必要深入理解库的实现原理和编程技巧,如果只是停留在只会使用库的基础上,对自己的知识深度的挖掘就会显得苍白无力了,到最后离开了库啥都干不了,呵呵
RUNBEAR 2010-02-05
  • 打赏
  • 举报
回复
其实是两个问题! 呵呵!
1.为p标签注册事件。
2.想取P的下标index。
jquery我会怎么操作,就是不懂纯js怎么做。
RUNBEAR 2010-02-05
  • 打赏
  • 举报
回复
我不要JQUERY的,我想要纯js的。
bestdowt1314 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shan1119 的回复:]
JScript code$("p").each(function(index){
$(this).click(function(){
alert(index);
});
});
[/Quote]恩,正解
笨笨牛 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 shan1119 的回复:]
HTML code<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html><head><script>if(!Array.indexOf){
Array.prototype.indexOf=function(obj){for(v?-
[/Quote]
赞同
草根醉秋意 2010-02-05
  • 打赏
  • 举报
回复

function test() {
var pEles = document.getElementsByTagName("p");
alert(pEles.length);
for (var i = 0; i < pEles.length; i++) {
(function() {
var index = i;
pEles[index].onclick = function() {
alert(index);
};
})();
}
}

function test() {
var pEles = document.getElementsByTagName("p");
alert(pEles.length);
for (var i = 0; i < pEles.length; i++) {
pEles[i].index = i;
pEles[i].onclick = function() {
alert(this.index);
};
}
}
yingzhilian2008 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ilwm1984 的回复:]
var ps=document.getElementsByTagName('p');
for(var i =0;i <ps.length;i++)

    ps[i].attachEvent('onclick',function(e){ 
      --点击事件
    });
}
[/Quote]赞同
浴火_凤凰 2010-02-05
  • 打赏
  • 举报
回复
楼主是不没有仔细看呢?怀疑是这样的
shan1119 2010-02-05
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
if(!Array.indexOf){
Array.prototype.indexOf = function(obj){
for(var i=0; i<this.length; i++){
if(this[i]==obj){
return i;
}
}
return -1;
}
}

window.onload=function (){
obj=document.getElementsByTagName("p");
var objP=[];
for(var i=0;i<obj.length;i++){
objP[i]=obj[i];
obj[i].onclick=function(){
alert("content:"+this.innerText+",\r\nindex:"+objP.indexOf(this));
};
}
}
</script>
</head>
<body>
<p>aaaa</p>
<p>bbbb</p>
<p>cccc</p>
<p>dddd</p>
</body>
</html>
jeremyxuzz 2010-02-05
  • 打赏
  • 举报
回复
var ps=document.getElementsByTagName('p');
for(var i =0;i<ps.length;i++)
{
ps[i].attachEvent('onclick',function(e){
--点击事件
});
}
zoutuo 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 runbear 的回复:]
其实是两个问题! 呵呵!
1.为p标签注册事件。
2.想取P的下标index。
jquery我会怎么操作,就是不懂纯js怎么做。
[/Quote]

1楼正解,楼主是不没有仔细看呢?
yaoBoss 2010-02-05
  • 打赏
  • 举报
回复
getByTagNames 得一集合
遍历之 点的时候去集合里找点击对象 对应索引 找到之 何苦来

function getIndex(obj,tagName)
{
for(i=0;i<document.getElementsByTagName("p").length;i++)
{
if(cument.getElementsByTagName("p")[i].innerHTML==obj.innerHTML){
return i;
}
}
}

如果非要搞清楚的话 请看jquery源代码无压缩版本 他是把dom对象封装成jquery对象
直接dom对象是没办法加方法的
RUNBEAR 2010-02-05
  • 打赏
  • 举报
回复
if(!Array.indexOf){}后面的我明白,这一句是什么意思?
一楼那个没有说到取index。11L是我想要的答案。
tenfyguo 2010-02-04
  • 打赏
  • 举报
回复
没看清楼主的要求是啥?是要对p标签注册事件还是要求p标签的index?或者求Index的目的是想对部分的p进行注册事件还是其他?
如果想对部分的p注册事件,可以使用对应的dom selector的格式来获取,如$('p.xxClass').click(function(){});
shan1119 2010-02-04
  • 打赏
  • 举报
回复
错了,1楼的
shan1119 2010-02-04
  • 打赏
  • 举报
回复
没看清题意,应该是2楼的
shan1119 2010-02-04
  • 打赏
  • 举报
回复
$("p").each(function(index){
$(this).click(function(){
alert(index);
});
});
呼吸先生 2010-02-04
  • 打赏
  • 举报
回复
document.getElementsByTagName("p")就可以获得所有p标签元素,然后你在一个个加入onclick就可以了。

<html>
<head>
<script type="text/javascript">
function test(){
var pEles = document.getElementsByTagName("p");
alert(pEles.length);
for(var i=0;i<pEles.length;i++) {
pEles[i].onclick = function(){
alert("huhu");
};
}
}
</script>
</head>
<body onload="test()">
<p>a</P>
<p>b</P>
<p>c</P>
<p>d</P>
</body>
</html>
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-02-04 10:11
社区公告
暂无公告