我想获取
元素的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 Part看起来像这样:
$(".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-part,然后创建herstellerID和herstellerLogo id ...
答案 0 :(得分:3)
ipr101是正确的:jQuery自动填充不会将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();
}
});
});
(未经测试但合乎逻辑)
答案 1 :(得分:0)
我认为你的回调中的'this'引用不会引用“.hersteller”文本框;试试这个 -
alert($(".hersteller").attr('id'));