Question

I have the following Delete confirmation code using jquery. The issue is that it assume the location of the name column. I now have name in the first row. Instead of using .prev('td'), is there anyway to get the value from the first column in the current row using jQuery?

<script type='text/javascript'>
    $(document).ready(function() {
        $("a.delete").click(function(e) {
            e.preventDefault();
            var url = $(this).attr("href");

            var name = $(this).parent().prev('td').prev('td').text();

            jConfirm('Are you sure you want to delete this:' + name, 'Application Delete', function(r) {
                if (r) {
                    window.location = url;
                }
            });
        });
    });
</script>
Was it helpful?

Solution

You could use under each

var name = $(this).parents('tr:first').find('td:first').text();

this goes to the row and then to the first cell of the row. That's more intuitive.

Edit: I changed 'tr' to 'tr:first', but in real this should often not be needed, because nested tables more than often indicate a different problem in the whole design (tables for layout?) which needs to be fixed differently.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top