'JQuery Selector for dynamic id

I am trying to change the image source in the Jquery

<a href="" class="wanted" id="'.$status_id[$num].'"><img src="/images/wanted.png">

through a JQuery selector:

$(".wanted "+ id).attr("src", '/images/wanted_.png');

Where id is defined in the javascript as the php variable $status_id[$num]. I first tried using $(this) to no avail. Any insight would be helpful.



Solution 1:[1]

When you access $(".wanted"+id) , you are actually trying to access an element with the class name = wanted+id. This is because of the '.' before 'wanted'. Also, you seem to be accessing the <a> tag directly and setting it's src attribute. You need to access the <img> tag. What you could try is this:

var x=document.getElementById(id);
$(x).find("img")[0].setAttribute("src","/images/wanted_.png");

Solution 2:[2]

ID of the HTML elements should be unique across the page.

You can try

//I assume id variable is already assigned the id of the element e.g var id = "<?php echo $status_id[$num] ?>";

$("#"+ id).attr("src", '/images/wanted_.png');

If you really want to select an element that has the given id and also the class wanted then try this:

$("#"+ id + ".wanted ").attr("src", '/images/wanted_.png');

Solution 3:[3]

Either you have access to the ID when the JS is created, or you don't. If you don't then you'll have to find another way to target the item eg: $('.wanted')

If you do, then put it in: $('#<?php echo $status_id[$num]; ?>')

Solution 4:[4]

Give it another class like imgToChange, then use $(".imgToChange")

Solution 5:[5]

The easiest way to find input value for dynamically loaded elements.

$(document).find("#your_input_id").val();

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 karan k
Solution 2 Chandu
Solution 3 Sinetheta
Solution 4 Charlie
Solution 5