开发者

jquery each css array

I have made an each statement which iterates through each class item found. At the same time there is another item with a different class but has the same key. I am needing to get the 开发者_开发知识库key from the first each and put it into the 2nd item without having to loop a second time.

$('.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
    });
});

--EDIT--

First, the v in $(v).live should be $(this).live 2nd, I am wanting to convert the single/id pull script to a multi pull script. So, I wrote this which works.

$('.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
    });
});

But I would like to be able to take the inner .each out and replace it with:

$('.searchfield:eq('+k+')') <-- something like this if I can get it to work

So the solution is this:

$('.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
    });
});

Thanks everyone


I suspect your $(v)above is incorrect, because $(...).each() provides its callback with a single documented argument (the index).

To achieve the equivalent of $('.searchfield[k]'), there's an actually quite close syntax available:

$('.searchfield:eq('+k+')')


The question is not clear. You talk of classes, but then your code uses $('#searchfield'), which is used to select elements with the given ID.

Assuming you really want to select elements with a given class (which is more correct, as there should not be elements with duplicated ID), and if there are exactly one element with class searchfield for each elements selected by $.each(), then you can use $($('.searchfield')[k]).html(data).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜