查找前一个按钮的ID
find ID of previous button
我正在寻找前一个按钮的id。这是相当远的-许多表行,表,div等之间的目标和按钮,但我认为这仍然会工作:
alert( $(this).prevAll("input[type=button]").attr('id') );
不幸的是,这返回警告'undefined'。帮助吗?
function getPrevInput(elem){
var i = 0,
inputs = document.getElementsByTagName('input'),
ret = 'Not found';
while(inputs[i] !== elem || i >= inputs.length){
if(inputs[i].type === 'button'){
ret = inputs[i];
}
i++;
}
return (typeof ret === 'string') ? ret : ret.id;
}
这可能不是最有效的解决方案,但这是我能想到的唯一解决方案。它所做的就是遍历所有的input
元素并找到在你传递给函数的元素之前的那个。您可以这样使用它,假设您正确调用它并且this
是输入元素:
getPrevInput(this);
演示这种查找可能代价很高。对所有input[type=button]元素进行选择,并遍历该数组,直到找到与id匹配的元素。然后,您可以简单地引用数组index - 1来获得您的答案。
前一个按钮是当前按钮的兄弟按钮吗?否则,prevAll()
将不起作用。prevAll()
描述:
获取匹配元素集合中每个元素前面的所有兄弟元素,可选地由选择器筛选。
根据您的DOM结构,您可以使用parents()
和find()
的组合。
此函数查找所有input[type=button]
元素,并使用jQuery index
函数查找该组中的当前元素。
$.fn.previousElem = function(lookup){
var $elements = $(lookup),
index = $elements.index(this);
if(index > 0){
return $elements.eq(index-1)
}else{
return this;
}
}
HTML: <div><div><div><div>
<input type=button id=1 value=1 />
</div></div></div></div>
<div><div><div><div>
<input type=button id=2 value=2 />
</div></div></div></div>
JS:
alert ($("#2").previousElem('input[type=button]').attr('id'))
http://jsfiddle.net/SnScQ/1/这是Amaan的代码的不同版本,但jqueryfied和他的解决方案不是寻找一个按钮。解决方案的关键是jQuery按照文档顺序返回元素,document.getElementsByTagName
和类似的函数也是如此。
var button = $('#c');
var prevNode;
$("input[type=button]").each(function() {
if (this == button[0]) {
return false;
}
prevNode = this;
});
alert(prevNode && prevNode.getAttribute('id'));
http://jsfiddle.net/crFy6/你试过。close吗?…
alert( $(this).closest("input[type=button]").attr('id') );
相关文章:
- 禁用旋转木马中的下一个按钮和上一个按钮
- 如何在用户返回和上一个按钮时刷新下拉列表
- 简单的垂直上一个和下一个按钮代码点击上下移动jQuery
- 如何使用一个按钮编辑和保存使用Javascript
- 在单击下一个按钮之前,在JavaScript代码中添加5秒的延迟
- 正如我所能做的引导提醒,按下一个按钮可以更改语言
- 当我的所有 Ng-from 都有效时启用一个按钮
- 一个按钮,点击后会生成一个新的文本框?-Javascript
- 我想在我的准备列表项上创建一个按钮
- JavaScript幻灯片显示,每个幻灯片的下一个按钮都有不同的位置
- 当我单击下一个或上一个按钮时,datatable显示旧值
- 制作一个按钮倒计时计时器,该计时器将在5分钟后永久禁用,即使在页面刷新时也应保持禁用状态
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- Jquery:如果选中了另一个按钮,则为未选中按钮
- 使文本在它之后再次可见'It’s被一个按钮隐藏了
- 传递来自<输入类型=“;文件“;id=“;文件“/>尽管还有一个按钮点击
- 为缩略图库和较大图像库添加下一个和上一个按钮
- 当滑块只有一个图像时,如何禁用下一个/上一个按钮
- 图像缩略图库中的“下一个”和“上一个”按钮中的“问题”
- 点击一个按钮,有没有一种方法可以检查Div内部的图像