<input id="1" class="Find">
<input id="2" class="Find">
<input id="3" class="Find">
$('.Find').autocomplete('auto/data.php?mode='+ $('.Find').attr('id') +'', {
width: 220,
max: 5,
selectFirst: false,
mustMatch:true,
formatItem: function(data, i, n, value) {return value.split("|")[0];}
});
在这种情况下,代码$('.Find').attr('id')
仅显示第一个数组。没有显示我需要的特定ID。
我已完成更改新变种n
,使用新变量更改此行$('.Find').attr('id')
,但结果为undefined
。
新的var看起来像这个var one = $("#GetObjc").attr("value");
任何人都可以帮助我。我该怎么做才能获得该类的特定ID。对不起,如果混淆cozz am newbie。
答案 0 :(得分:1)
我不确定你在找什么。但您可以使用.each
获取所有id
。
var ids ='';
$(".Find").each(function( index, value ) {
ids += $(this).attr('id') + ',';
});
然后你可以拆分ids
变量或类似的东西。
<强> Check JSFiddle Demo 强>
在您的情况下,我认为它对您有用:
$('.Find').each(function() {
var $this = $(this);
$this.autocomplete('auto/data.php?mode='+ $this.attr('id') + '', {
width: 220,
mzx: 5,
selectFirst: false,
mustMatch:true,
formatItem: function(data, i, n, value) {return value.split("|")[0];}
});
});
答案 1 :(得分:1)
2%的几率我以正确的方式理解你的问题,但似乎你需要遍历元素列表:
$('.Find').each(function() {
$(this).autocomplete('auto/data.php?mode='+ $(this).attr('id') +'', {
width: 220,
max: 5,
selectFirst: false,
mustMatch:true,
formatItem: function(data, i, n, value) {return value.split("|")[0];}
});
});
答案 2 :(得分:1)
我想你想这样做:
$('.Find').each(function() {
var $this = $(this);
$this.autocomplete('auto/data.php?mode='+ $this.attr('id') + '', {
width: 220,
mzx: 5,
selectFirst: false,
mustMatch:true,
formatItem: function(data, i, n, value) {return value.split("|")[0];}
});
});
$('.Find').attr('id')
将始终返回页面中第一个.Find
的ID。所以你不能这样使用它。
答案 3 :(得分:1)
$('.Find')
返回一个包含所有DOM元素的数组(包含在jquery中),它们有一个'Find'类。
您可以使用[]运算符访问每个元素 - 例如$('.Find')[0]
,或者使用for
lop迭代数组。要获取元素的id,请使用id属性。
总结 - $('.Find')[0].id
- 第一个元素的ID
答案 4 :(得分:1)
我不确定我是否得到了你想要的东西,但我想你想根据输入自动完成所有输入和来自不同网址的数据,如果是这样你可以这样做:
$('.Find').each(function(){
$(this).autocomplete('auto/data.php?mode='+ $(this).attr('id') +'', {
width: 220,
max: 5,
selectFirst: false,
mustMatch:true,
formatItem: function(data, i, n, value) {return value.split("|")[0];}
});
})
获取id,在每个中只做:
$(this).attr('id') or $(this).prop('id')
答案 5 :(得分:1)
要获得动态数据源,您需要设置function()
作为源。
此外,this
属性不返回实际的DOM元素,而不是(当然)包含实际elemet的更丰富的对象。
因此,要实现您的目标,您可以尝试以下方法:
$('.Find').autocomplete({
source: function(request, response) {
var id = this.element[0].id;
var url = 'auto/data.php?mode='+ id;
jQuery.getJSON(url, response).error(function () { /* handle JSON error */ });
},
width: 220,
max: 5,
selectFirst: false,
mustMatch:true,
formatItem: function(data, i, n, value) {return value.split("|")[0];}
});