Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Below is my code and i am trying to get value of the above text box when click on the <a> which is in same div. I mean to say if i click on second "add to cart" link than it will give me "test2" as per my screenshot.

<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>

but not getting success. this is my project image

Please suggest me solution.

like image 838
Jalpesh Patel Avatar asked Dec 05 '13 11:12

Jalpesh Patel


2 Answers

You can use prev() to get the textbox

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

Description: Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector, reference.

Given a jQuery object that represents a set of DOM elements, the .prev() method searches for the predecessor of each of these elements in the DOM tree and constructs a new jQuery object from the matching elements.

The method optionally accepts a selector expression of the same type that can be passed to the $() function. If the selector is supplied, the preceding element will be filtered by testing whether it match the selector, reference.

like image 135
Adil Avatar answered Oct 16 '22 04:10

Adil


the input is the previous sibling element of the clicked anchor element so use .prev() ($(this).prev())

Also to get the value of the element use .val()

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

Demo: Fiddle

like image 42
Arun P Johny Avatar answered Oct 16 '22 05:10

Arun P Johny