我正在使用 jquery-ui 創建一個搜索下拉選單,但我想在下拉結果中用空格替換下劃線。我已經在源代碼上嘗試了 .replace ,但它似乎不起作用。
下面是我的自動完成代碼。我該如何使用.replace(/_/g, " ")它?
謝謝你。
$(document).ready(function(){
var alls = $.each([
'Dr._Peppins',
'Spain',
'index',
],
$( "#userInput" ).autocomplete({
source: alls
});
});
uj5u.com熱心網友回復:
考慮以下。
$(function() {
var alls = [
'Dr._Peppins',
'Spain',
'index',
];
function undScore2Space(word) {
return word.replace("_", " ");
}
function filterArray(arr) {
$.each(arr, function(i, e) {
arr[i] = undScore2Space(e);
});
return arr;
}
$("#userInput").autocomplete({
source: function(req, resp) {
var results = $.ui.autocomplete.filter(alls, req.term);
resp(filterArray(results));
}
});
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.js"></script>
<div class="ui-widget">
<label for="userInput">Input: </label>
<input id="userInput">
</div>
在您的示例中,您執行每個。這沒有正確形成,應該會產生錯誤。
在陣列的情況下,回呼每次都會傳遞一個陣列
index和一個對應的陣列。value(該值也可以通過this關鍵字訪問,但 Javascript 將始終將該this值包裝為一個 Object,即使它是一個簡單的字串或數字值。)該方法回傳其第一個引數,即被迭代的物件。
因此,您不想在陣列中的每個專案上初始化 Autocomplete。如果您愿意,您可以修改每個部分,但如果您希望源包含這些字符,最好在查找后將它們過濾掉。
您可以通過source這種方式使用函式并執行事件。
您還可以執行以下操作:
$(document).ready(function(){
var alls = [];
$.each([
'Dr._Peppins',
'Spain',
'index'
], function(index, elem){
alls.push(elem.replace("_", " "));
});
$("#userInput").autocomplete({
source: alls
});
});
uj5u.com熱心網友回復:
試試這個:
source: alls.replace("_", " ");
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/462323.html
上一篇:帶有三個表和外鍵的SQL選擇
