繁体   English   中英

单击<a>时如何获取上一个文本框值?

[英]How to get Previous textbox value when click on <a>?

下面是我的代码,当我点击同一div中的<a>时,我试图获得上面文本框的值。 我的意思是说,如果我点击第二个“添加到购物车”链接,它将根据我的截图给我“test2”。

<html>
<head>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$( document ).ready(function() {

$(".ProductActionAdd a").click(function(){

    alert($('.ProductActionAdd a').prevAll(".ProductActionAdd a:first").attr('value'));
})
});

</script>
</head>
<body>
<div class="ProductActionAdd">
    <input type="text" value=""/>
    <a class="button" href="#">Add To Cart</a>
</div>
<div class="ProductActionAdd">
    <input type="text" value=""/>
    <a class="button" href="#">Add To Cart</a>
</div>
<div class="ProductActionAdd">
    <input type="text" value=""/>
    <a class="button" href="#">Add To Cart</a>
</div>
</body>
</html>

但没有成功。 这是我的项目形象

请建议我解决方案。

您可以使用prev()来获取textbox

$( document ).ready(function() {
    $(".ProductActionAdd a").click(function(){ 
        alert($(this).prev().val());   
        alert($('.ProductActionAdd a').prevAll(".ProductActionAdd a:first").attr('id'));
    });
});

描述:获取匹配元素集中每个元素的前一个兄弟,可选择通过选择器, 引用进行过滤。

给定一个表示一组DOM元素的jQuery对象,.prev()方法在DOM树中搜索每个元素的前任,并从匹配元素构造一个新的jQuery对象。

该方法可选地接受可以传递给$()函数的相同类型的选择器表达式。 如果提供了选择器,则将通过测试前一个元素是否与选择器引用相匹配来过滤前一个元素。

输入是单击的锚元素的前一个兄弟元素,因此使用.prev()$(this).prev()

另外要获取元素的值,请使用.val()

$(document).ready(function () {
    $(".ProductActionAdd a").click(function () {
        alert($(this).prev().val());
    })
});

演示: 小提琴

$(".ProductActionAdd a").click(function(){    
    alert($(this).closest(':input').val());
});

试试这个

$(".ProductActionAdd a").click(function(){
    alert($(this).prev().val());
})

是的,你可以使用jquery $(this)来完成这个任务。 实现此任务的方法不止一种。

你可以试试jquery .prev()

$(".ProductActionAdd a").click(function(){
    alert($(this).prev().val());        
});

或者您也可以尝试使用jquery .parent()查找父容器的输入

$(".ProductActionAdd a").click(function(){    
    alert($(this).parent().find('input[type="text"]').val());    
});

也可以尝试使用jsfiddle

试试这个

$(".ProductActionAdd a").click(function(){
alert($(this).closest('div').find('input').attr('id'));
});

http://jsfiddle.net/BmkL8/

检查一下:

$(".ProductActionAdd a").click(function(){

    $(this).prev("input[type=text]").val();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM