如何获取上一级元素的值

代码:
<input id="number0" name="number" type="text" value="1" class="number_text">
< href="#" onclick="addNum(this)" id="add0" class="jia">+</>

function addNum(a){

alert(a.prev("input").text());

}
由于a标签在网页会被转换,我就去掉a了
问题:我想获取input的值,但是这样不起作用,addNum()括号里面应该传什么值,而且如何获取上一级元素

阅读 6.4k
4 个回答

this没有prev()方法
$(this)才有。

在jQuery中,不建议使用onclick,直接使用元素选择器操作就好了:

$(".jia").on("click",function(){
   var num=$(this).prev().val();
   alert(num):
})

input的值直接使用jquery的id/class选择器获取都可以,获取的是value值
例如:
$("#number0").val();//id选择器
$(".number_text").val();//class选择器

获取上一级元素
addNum()括号里面应该传jquery选择器,不过prev()方法返回被选元素的前一个同级元素。
如果你想获取input的上级元素应该使用parent()方法返回被选元素的直接父元素。

你拿到的a(形参怎么写都行,对于你说的会被转换没有明白什么意思)就是当前点击的dom对象,获取上一级兄弟节点直接用a.previousElementSibling.value就行了。
JQ获取:$(a).prev().val()

直接用js是可以拿到前一个元素的,不一定要引入jQuery的。

// <a><b1 id="b1"/><b2 id="b2"/></a>

alert(document.getElementById("b2").previousSibling.id); // "b1"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题