簡體   English   中英

Jquery - 動態地將參數傳遞給函數

[英]Jquery - Dynamically pass parameters to function

我甚至不確定我是以正確的方式詢問或談論這個問題,但如果我只是展示它,它可能會更容易。 基本上,我試圖通過function運行每個divattr作為parameter ,並讓它根據div的attr返回不同的結果。

您可以看到,該示例是單擊容器div中的鏈接時顯示的一組下拉列表。 如果您進行選擇,則將其保存為父div中的attr。 當您單擊,然后返回容器時出現問題...而不是使用相應的默認或選擇顯示重新顯示每個下拉列表,它只是鏡像旁邊的a的結果。

http://jsfiddle.net/nosfan1019/b7F6x/5/

TIA

我插入了一些console.log()語句來查看各種jQuery選擇器發生了什么。 我觀察到以下內容:

  • 當我點擊第一個“點擊”節點時, _container是“頂級”節點
  • 因此,在你的三個div的迭代中,你選擇div中包含類'dd'的兩個div,類為'top one'
  • 傳遞給函數select()的參數_attr_parent對於每個處理的節點都是相同的,兩個'dd'框的結果相同。

我想你想要改變你用來定位要修改的節點的選擇器。

foo = foo.find('.dropdown-toggle').html(_new + '<b class="caret"></b>');

使用此行,您將獲得兩個div,因此您可以更改這兩個值(如果從droplist中選擇了值)。

要正確恢復所選值:

function modified(_select) {
    console.log("modify");
    foo = $('#box').html();
    foo = $(_select).html(foo);
    // iterate on collection to restore selected value from selection tag;
    foo.filter("div[selection]").each(function(i, v){
        var selected = $(v).attr('selection');
        $(v).find('.dropdown-toggle').html(selected + '<b class="caret"></b>');                
    });                
}

然后,如果parentDiv中的任何一個有[selection] attr,則需要檢查它:

if($(y).filter("div[selection]").length > 0){
    return modified(y);
}         

http://jsfiddle.net/b7F6x/50/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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