Así que estoy tratando de ejecutar un código js que convierte todos los elementos <a></a> debajo de otro elemento <b></b> (el nombre real es único en el HTML) en un enlace que hace una solicitud de obtención HTTP . Esto es lo que tengo y no hace nada.
$("ba").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" class="missing">has has not been installed. to see more click on<a>Link</a></b>Primero, el atributo de data- no está en el elemento a , sino en el elemento b . Entonces, al hacer clic en el enlace, debe obtener los datos del padre.
En segundo lugar, necesita un controlador de eventos en el enlace.
$("ba").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>El escenario no está muy claro.
pero puedes hacerlo con el siguiente código
$("bg>a").each(function (index, element) { var data = element.getAttribute("data-something"); $.get(("https://example.com/id?" + data); });