社区
Web 开发
帖子详情
javascript如何获得当前元素的前一个元素(在线等)
xutao7787
2007-01-11 04:16:17
当点击一个页面元素(比如一个按钮),当我把他移除时如何让焦点自动移到他前一个元素上,当我再点删除时删除的是获得焦点的这个元素,然后焦点再移到删除元素的前一个元素上。
搞了一下午都没想出好办法,哪位指点一下,谢谢。
...全文
4018
8
打赏
收藏
javascript如何获得当前元素的前一个元素(在线等)
当点击一个页面元素(比如一个按钮),当我把他移除时如何让焦点自动移到他前一个元素上,当我再点删除时删除的是获得焦点的这个元素,然后焦点再移到删除元素的前一个元素上。 搞了一下午都没想出好办法,哪位指点一下,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xutao7787
2007-07-23
打赏
举报
回复
牛人,佩服。
MuteG
2007-01-15
打赏
举报
回复
我觉得可以这样,把每个你可能进行删除操作的组件的id属性用数字表示,比如第一个button的id用1,第二个就用2,然后在你要删除组件时,获得这个组件的id,那么他上一个组件的id就是id-1,下一个就是id+1,然后用document.getElementById(id)就可以获得这个组件,然后给它焦点就可以了,不知道这样可以不。
huacius
2007-01-15
打赏
举报
回复
gaoyunpeng(月光鸟)
写的不错,学习。
ruan1005snk
2007-01-15
打赏
举报
回复
楼上的是高手,写的基本看不懂。学习。。
MuteG
2007-01-15
打赏
举报
回复
啊,xulipeng() ( ) 说的对,确实存在这个问题,那就这样,你把所有想删除的组件的name统一,比如都叫delComp,你就可以通过getElementsByName('delComp')来获得所有备删除组件数组,然后确定你要删除的组件在数组中的位置,从而可以获得与他相邻的组件,这样好一些吧~不过javascript中没有提供数组的indexof方法,所以或者自己定义一下,或者用点笨方法,遍历它们,然后根据各自的id属性来唯一标识,确定要删除的组件在数组中的位置,从而获得它的邻居。
以下是从网上查到的自定义的数组操作函数
<html>
<head>
<title> Extend JavaScript Array Method </title>
<script language="javascript">
<!--
Array.prototype.indexOf=function(substr,start){
var ta,rt,d='\0';
if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;}
var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d);
if(t==-1)return -1;rt+=str.slice(0,t).replace(/[^\0]/g,'').length;
return rt;
}
Array.prototype.lastIndexOf=function(substr,start){
var ta,rt,d='\0';
if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;}
ta=ta.reverse();var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d);
if(t==-1)return -1;rt+=str.slice(t).replace(/[^\0]/g,'').length-2;
return rt;
}
Array.prototype.replace=function(reg,rpby){
var ta=this.slice(0),d='\0';
var str=ta.join(d);str=str.replace(reg,rpby);
return str.split(d);
}
Array.prototype.search=function(reg){
var ta=this.slice(0),d='\0',str=d+ta.join(d)+d,regstr=reg.toString();
reg=new RegExp(regstr.replace(/\/((.|\n)+)\/.*/g,'\\0$1\\0'),regstr.slice(regstr.lastIndexOf('/')+1));
t=str.search(reg);if(t==-1)return -1;return str.slice(0,t).replace(/[^\0]/g,'').length;
}
window.onload=function(){
var a=new Array('aa1321321','b4323424b','cc345345','dd4654','dd4654','b4323424b');
document.getElementById('t1').value=a.toString();
document.getElementById('t2').value=a.indexOf('cc345345');
document.getElementById('t3').value=a.lastIndexOf('dd4654');
document.getElementById('t4').value=a.replace(/\d/g,'*');
document.getElementById('t5').value=a.search(/dd4654/);
};
//-->
</script>
<style type="text/css">
<!--
input{width:600px}
//-->
</style>
</head>
<body>
<table>
<tr><td>数组a:</td><td><input id="t1" type="text" /></td></tr>
<tr><td>a.indexOf('cc345345'):</td><td><input id="t2" type="text" /></td></tr>
<tr><td>a.lastIndexOf('dd4654'):</td><td><input id="t3" type="text" /></td></tr>
<tr><td>a.replace(/\d/g,'*'):</td><td><input id="t4" type="text" /></td></tr>
<tr><td>a.search(/dd4654/):</td><td><input id="t5" type="text" /></td></tr>
</table>
</body>
</html>
stefli
2007-01-15
打赏
举报
回复
这个?
<script type="text/javascript">
<!-- edit by stefli
function checkPre(id) {
var o = document.getElementById(id);
var oPre = o.previousSibling;
var oNext = o.nextSibling;
var oParent = o.parentNode;
var oChild = o.children[0];
alert("Current:\n" + o.innerHTML);
alert("Previous:\n" + oPre.innerHTML);
alert("Next:\n" + oNext.innerHTML);
alert("Parent:\n" + oParent.innerHTML);
alert("Child:\n" + oChild.innerHTML);
}
//-->
</script>
<div id="parent">
<div id="first">1</div>
<div id="second">2<div id="child">child</div></div>
<div id="third">3</div>
</div>
<input type="button" value="checkPre('second')" onclick="checkPre('second');">
xulipeng
2007-01-15
打赏
举报
回复
“gaoyunpeng(月光鸟)” 乱搞! 如果中间的ID被删了怎么办?!
我有个笨办法:遍历所有元素,找到当前元素时取前一个。
journay
2007-01-15
打赏
举报
回复
当然要自己纪录下来点击的顺序了
jquery 获取
当
前
元素
的
前
一个兄弟节点
元素
博客介绍了使用jQuery的prev()方法获取
当
前
元素
的
前
一个兄弟节点
元素
,还给出了示例代码及运行效果展示。
js获取
当
前
时间
前
一周时间
前
一个月时间
本文提供了一种使用
JavaScript
获取
当
前
日期、一周
前
及一个月
前
日期的方法,并通过实例演示了如何设置这些日期。
js、php获取
当
前
日期、
当
前
日期
前
一周、
当
前
日期
前
一个月 日期
本文介绍了使用
JavaScript
和PHP两种语言来获取
当
前
时间、一周
前
的时间及一个月
前
的时间的方法。对于每种语言,都提供了具体的代码实现,便于读者理解和应用。
JavaScript
取HTML DOM一
个
元素
的
前
一
个
元素
引出的问题
本文探讨了使用
JavaScript
在不同浏览器中获取
元素
前
一个同级
元素
的问题,并提供了针对IE6及Firefox3.6的具体解决方案。
JS获取
当
前
时间以及一个月
前
的时间
本文介绍了如何在
JavaScript
中使用window对象的函数获取
当
前
时间和一个月
前
的时间,并对日期进行格式化。
Web 开发
81,110
社区成员
341,727
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章