Bagaimana saya harus menyusun fungsi bernama countryUrl() dengan mengambil parameter id dari tag <li> di:

<ul>
  <li onclick="countryUrl(this.id)" id="20" value="Benin">
    <a href="#">Benin</a>
  </li>
</ul>

Dan menggabungkannya ke /frame/theme/ dalam panggilan ajax:

$.ajax({
        type:"GET",
        url :"/frame/theme1/"+myUrl,
        dataType: 'json',
        success:  function(data) { ...

Apakah itu akan menjadi seperti:

function countryUrl(id){
   return "/frame/theme/"+this.id; 
}

Lalu bagaimana cara meneruskannya ke bidang url:?

-1
road 7 Agustus 2017, 22:17

2 jawaban

Jawaban Terbaik

Pertama, jangan gunakan atribut peristiwa HTML sebaris, seperti onclick. Ada berbagai alasan. Sebagai gantinya, pisahkan JavaScript Anda dari HTML dan ikuti standar modern seperti yang ditunjukkan di bawah ini.

Selanjutnya, meskipun sah untuk id menjadi angka, itu bukan ide yang baik (terutama untuk kompatibilitas mundur).

Selain itu, elemen li tidak memiliki atribut value. Gunakan data-*< /strong> untuk menyimpan nilai khusus dalam elemen HTML.

Terakhir, Anda tidak memerlukan hyperlink di daftar Anda untuk membuat item daftar dapat diklik.

Yang perlu Anda lakukan hanyalah menyiapkan elemen li untuk memiliki panggilan balik peristiwa click dan panggilan balik itu mengekstrak data dari li yang diklik dan menggunakannya sesuai kebutuhan.

// Get reference to the bullet:
var li = document.getElementById("lstBenin");

// Set up bullet to be clickable:
li.addEventListener("click", countryURL);

// function that is called when bullet is clicked
function countryURL(){

  // Create new URL based on the "data-value2" attribute
  // of the element that was clicked:
  var newURL = "/frame/theme1/" + this.dataset.value2;
  console.log(newURL);  // Test

  // Make AJAX call using new URL
  $.ajax({
          type:"GET",
          url :newURL,
          dataType: 'json',
          success:  function(data) { 
          }
        });

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li id="lstBenin" data-value1="Benin" data-value2="20">Benin</li>
</ul>
0
Scott Marcus 7 Agustus 2017, 19:31

Anda dapat menggunakan data("id") alih-alih id. Kemudian Anda hanya akan menggunakan counrtyUrl(this.data('id').Dalam panggilan $.ajax gunakan argumen dari fungsi.

0
SashaSemanyuk 7 Agustus 2017, 19:20