社区
Web 开发
帖子详情
javascript如何获得当前元素的前一个元素(在线等)
xutao7787
2007-01-11 04:16:17
当点击一个页面元素(比如一个按钮),当我把他移除时如何让焦点自动移到他前一个元素上,当我再点删除时删除的是获得焦点的这个元素,然后焦点再移到删除元素的前一个元素上。
搞了一下午都没想出好办法,哪位指点一下,谢谢。
...全文
3916
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
打赏
举报
回复
当然要自己纪录下来点击的顺序了
用OOP的思想来学习
JavaScript
-编写第一个
JavaScript
程序(第1章)
JavaScript
已经成为当今流行的语言,是基于Java的一种非常松散的面向对象语言,是数亿网民受益的新动态语言,增强了与用户的交互性。 本课程将毫无保留的将作者积累的开发经验分享给大家,知识点深入浅出,详略得当...
javaScript
取得
当
前
元素
的下一个
元素
如何取得
当
前
元素
的下一个
元素
呢? 例如,这有两个div 这是一个div 这是一个div 我可以取得第一个div 我想取得紧邻它的下一个
元素
,从网上获取的方法是:div1.nextSibling,然会我会得到一个#text 可是我想要的...
JavaScript
获取点击
元素
【代码】
JavaScript
获取点击
元素
。
JavaScript
获取
元素
的几种方法
selenium可以借用
JavaScript
操作
元素
,这是一些
JavaScript
获取
元素
的方法
javascript
获取
当
前
元素
的下一个
元素
var div = document.getElementById("ele"); var nextDiv = div.nextSibling.nextSibling; 或 var nextDiv = div.nextElementSibling;
Web 开发
81,094
社区成员
341,710
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章