簡體   English   中英

獲取自動完成內元素的ID

[英]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開頭

  • [PID] _herstellerID
  • [pid] _herstellerName(這是我自動填寫的那個
  • [PID] _herstellerLogo

我想做的是獲取自動完成已更改的ID,將pid部分切開,並創建herstellerID和herstellerLogo ID名稱...

  • 編輯1更改代碼,使我的問題更清楚
  • 編輯2添加了我最初想要實現的目標

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM