我创建了一个每个语句,它遍历找到的每个类项。同时还有另一个具有不同类但具有相同键的项。我需要从第一个中获取密钥并将其放入第二个项目而不必再次循环。
$('.searchby').each(function(k,v){ // looping through .searchby
$(v).live('change',function(){ // when .searchby drop down changed do this
selv = $(this).val(); // get value of drop down
$.post('file.php',{ 'val' : selv },function(data){
// Below is where I need what I need to happen.
// Previously I had .searchby as id but need multiple.
// So, what I need it to do is like php.
// $('.searchfield[k]).html(data); // <-- like this
$('#searchfield').html(data);
},'html'); // html, xml, script, json
});
});
- 编辑 -
首先,$(v).live中的v应为$(this).live 2,我想将single / id pull脚本转换为多拉脚本。所以,我写了这个有效。
$('.searchby').each(function(k,v){
$(this).change(function(){
selv = $(this).val();
$.post('file.php',{
'val' : selv
},function(data){
$('.searchfield').each(function(kk,vv){
if(k == kk) $(vv).html(data);
});
//$('#searchfield').html(data);
},'html'); // html, xml, script, json
});
});
但是我希望能够将内部的.each取出并替换为:
$('.searchfield:eq('+k+')') <-- something like this if I can get it to work
所以解决方案就是:
$('.searchby').each(function(k,v){
$(this).change(function(){
selv = $(this).val();
$.post('file.php',{
'val' : selv
},function(data){
$('.searchfield:eq('+k+')').html(data);
},'html'); // html, xml, script, json
});
});
谢谢大家
答案 0 :(得分:1)
我怀疑上面的$(v)
不正确,因为$(...).each()
使用单个记录的参数(索引)提供其回调。
为了达到$('.searchfield[k]')
的效果,实际上有一个非常接近的语法:
$('.searchfield:eq('+k+')')
答案 1 :(得分:0)
问题不明确。您谈论的是类,但随后您的代码使用$('#searchfield')
,用于选择具有给定ID的元素。
假设你真的想要选择具有给定类的元素(更正确,因为不应该有具有重复ID的元素),并且对于选择的每个元素,如果只有一个元素具有类searchfield
$.each()
,然后您可以使用$($('.searchfield')[k]).html(data)
。