Home > Software engineering >  How can I add ajax get call to a html element?
How can I add ajax get call to a html element?

Time:02-05

So I am trying to run a js code that turns all of <a></a> elements under another element <b></b> (the actual name is unique in the HTML) to a link that makes an HTTP get request. This is what I got and it doesn't do anything.

$("b a").each(function(index, element) {
  var data = element.getAttribute("data-something");
  // $.ajax("https://example.com/"   data);
  console.log(data);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<b data-something="an-id" >has has not been installed. to see more click on<a>Link</a></b>

CodePudding user response:

First, the data- attribute is not on the a element, but on the b element. So on link click, you need to get the data from the parent.

Second, you need an event handler on the link.

$("b a").each(function(index, element) {
  let data = element.closest("b").getAttribute("data-something");

  $(element).on("click", function() {
    console.log(data)

    // Commented out for this snippet only
    //$.ajax("https://example.com/"   data);
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<b data-something="an-id" class=\ "missing\">has has not been installed. to see more click on this <a>Link</a></b><br>

CodePudding user response:

The scenario is not clear much.

but you can do it with the below code

 $("bg>a").each(function (index, element) {
           var data = element.getAttribute("data-something");
           $.get(("https://example.com/id?"   data);
       });
  •  Tags:  
  • Related