[英]Get the ID of an element within an autocomplete
我想獲取一個元素的ID
<input type="text" id='4711_herstellerName' class='hersteller' />
<input type="text" id='0815_herstellerName' class='hersteller' />
<input type="text" id='1234_herstellerName' class='hersteller' />
我的JQuery部分看起來像這樣:
$(".hersteller").autocomplete("ajax/getHersteller.php", {
width: 320,
max: 4,
highlight: true,
scroll: true,
scrollHeight: 300,
formatItem: function(data, i, n, value) {
alert($(this).attr('id'));
var herstellernummer = value.split(" ")[0];
var herstellername = value.replace(herstellernummer,"");
return herstellername.trim();
}
});
我想要的是一個警告框,其中包含“ 4711_herstellerName”(當我更改第一個輸入時)和“ 1234_herstellerName”(當我更改最后一個輸入時)的內容,但是我得到的只是“未定義”……我顯然誤解了文檔。 可以給我一個方向的指示嗎?
也許有另一種方法可以滿足我的需要:在此字段中的編輯(和子序列選擇)應更改不同輸入字段中的值(全部由php腳本提供)。 所有這些字段ID都是自動創建的,但是一組中的所有字段都以以下格式的相同ID開頭
我想做的是獲取自動完成已更改的ID,將pid部分切開,並創建herstellerID和herstellerLogo ID名稱...
ipr101的權利:jQuery Autocomplete不會this
設置為您要為其提供自動完成格式設置規則的對象。
相反, this
僅僅是函數表達式之外的任何內容。 因此,如果您正確設置了周圍的上下文,則可能可以使它起作用:
$(".hersteller").each(function() {
var $obj = $(this);
$obj.autocomplete("ajax/getHersteller.php", {
width: 320,
max: 4,
highlight: true,
scroll: true,
scrollHeight: 300,
formatItem: function(data, i, n, value) {
alert($obj.attr('id'));
var herstellernummer = value.split(" ")[0];
var herstellername = value.replace(herstellernummer,"");
return herstellername.trim();
}
});
});
(未經測試但合乎邏輯)
我認為您回調中的“ this”引用不會引用“ .hersteller”文本框; 嘗試這個 -
alert($(".hersteller").attr('id'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.