Saya punya URL ini:
site.fwx?position=1&archiveid=5000&columns=5&rows=20&sorting=ModifiedTimeAsc
yang saya butuhkan adalah untuk dapat mengubah nilai param url 'baris' menjadi sesuatu yang saya tentukan, katakanlah 10. Dan jika 'baris' tidak ada, saya perlu menambahkannya ke akhir url dan menambahkan nilai saya sudah ditentukan (10).
javascript
url
query-string
url-parameters
url-parsing
Sindre Sorhus
sumber
sumber
Jawaban:
Saya telah memperluas kode Sujoy untuk membuat fungsi.
Panggilan fungsi:
Versi terbaru yang juga menjaga anchor pada URL.
sumber
http://www.domain.com/index.php?action=my_action&view-all=Yes
dan saya perlu mengubah nilai "view-all". Pertanyaan SO saya yang sudah ditutup: stackoverflow.com/questions/13025880/…Saya pikir Anda menginginkan plugin kueri .
Misalnya:
Ini akan berfungsi terlepas dari status baris saat ini.
sumber
window.location.pathname
.Untuk menjawab pertanyaan saya sendiri 4 tahun kemudian, setelah banyak belajar. Terutama bahwa Anda tidak boleh menggunakan jQuery untuk semuanya. Saya telah membuat modul sederhana yang dapat mem-parsing / merumuskan string kueri. Ini membuatnya mudah untuk memodifikasi string kueri.
Anda dapat menggunakan string-kueri sebagai berikut:
sumber
Solusi kecil cepat di js murni, tidak perlu plugin:
Sebut saja seperti ini:
Atau, jika Anda ingin tetap di halaman yang sama dan mengganti beberapa params:
mengedit, berkat Lukas: Untuk menghapus parameter seluruhnya, lulus
false
ataunull
untuk nilai:replaceQueryParam('rows', false, params)
. Karena0
juga palsu , sebutkan'0'
.sumber
Ben Alman memiliki plugin jquery querystring / url yang baik di sini yang memungkinkan Anda untuk memanipulasi querystring dengan mudah.
Seperti yang diminta -
Buka halaman tesnya di sini
Dalam pembakar masukkan yang berikut ke konsol
jQuery.param.querystring(window.location.href, 'a=3&newValue=100');
Ini akan mengembalikan Anda string url yang diubah berikut
Perhatikan nilai querystring untuk a telah berubah dari X ke 3 dan telah menambahkan nilai baru.
Anda kemudian dapat menggunakan string url baru namun Anda ingin misalnya menggunakan document.location = newUrl atau mengubah tautan jangkar dll
sumber
TypeError: jQuery.param.querystring is not a function
jQuery.param.querystring
. Saya kira mereka telah refactored perpustakaan.Pendekatan modern untuk ini adalah dengan menggunakan URLSearchParams berbasis standar asli . Ini didukung oleh semua browser utama, kecuali untuk IE yang menyediakan polyfill
sumber
site.fwx%3Fposition=1&archiveid=5000&columns=5&rows=10&sorting=ModifiedTimeAsc
yang membingungkan karena itu bukan apa yang akan Anda bangun jika Anda melakukannya secara manual ...Anda dapat melakukannya melalui JS normal juga
sumber
Ini adalah cara modern untuk mengubah parameter URL:
sumber
Apakah alternatif yang layak untuk manipulasi String adalah dengan mengatur html
form
dan hanya mengubah nilairows
elemen?Jadi, dengan
html
itu adalah sesuatu sepertiDengan JavaScript berikut untuk mengirimkan formulir
Mungkin tidak cocok untuk semua situasi, tetapi mungkin lebih baik daripada mengurai string URL.
sumber
Anda dapat menggunakan perpustakaan saya ini untuk melakukan pekerjaan: https://github.com/Mikhus/jsurl
sumber
Solusi 2020 : mengatur variabel atau menghapusnya jika Anda lulus
null
atauundefined
ke nilai.sumber
URLSearchParams
tidak bekerja di versi terbaru dari semua browser utama (2020)Saya menulis fungsi pembantu kecil yang bekerja dengan semua pilih. Yang perlu Anda lakukan adalah menambahkan kelas "redirectOnChange" ke setiap elemen pilih, dan ini akan menyebabkan halaman memuat ulang dengan parameter querystring yang baru / diubah, sama dengan id dan nilai pilih, misalnya:
Contoh di atas akan menambahkan "? MyValue = 222" atau "? MyValue = 333" (atau menggunakan "&" jika ada param lain), dan memuat ulang halaman.
jQuery:
sumber
Di sini saya telah mengambil jawaban Adil Malik dan memperbaiki 3 masalah yang saya identifikasi dengannya.
sumber
Inilah yang saya lakukan. Menggunakan fungsi editParams () saya, Anda dapat menambah, menghapus, atau mengubah parameter apa pun, lalu menggunakan fungsi replState () bawaan untuk memperbarui URL:
sumber
Solusi saya:
Kemudian panggil saja "setParams" dan berikan objek dengan data yang ingin Anda atur.
Contoh:
Dalam kasus saya, saya harus memperbarui input html pilih ketika itu berubah dan jika nilainya "0", hapus parameter. Anda dapat mengedit fungsi dan menghapus parameter dari url jika kunci objek "null" juga.
Semoga ini bisa membantu kalian
sumber
Variasi lain pada jawaban Sujoy. Baru saja mengubah nama variabel & menambahkan pembungkus namespace:
Penggunaan sekarang:
sumber
Saya juga telah menulis perpustakaan untuk mendapatkan dan mengatur parameter kueri URL dalam JavaScript .
Berikut adalah contoh penggunaannya.
Dapatkan parem permintaan sebagai objek, dengan kunci, atau tambahkan / ubah / hapus.
sumber
Saya mencari hal yang sama dan menemukan: https://github.com/medialize/URI.js yang cukup bagus :)
- Perbarui
Saya menemukan paket yang lebih baik: https://www.npmjs.org/package/qs juga berkaitan dengan array dalam params dapatkan.
sumber
Saya tahu ini adalah pertanyaan lama. Saya telah meningkatkan fungsi di atas untuk menambah atau memperbarui parameter permintaan. Masih solusi JS murni saja.
sumber
fungsi saya mendukung penghapusan param
sumber
Saya baru saja menulis modul sederhana untuk menangani membaca dan memperbarui params permintaan url saat ini.
Contoh penggunaan:
Ini kode saya bernama UrlParams. (Js / ts):
sumber
sumber