2011-08-01 122 views
0

.parameters我有,我用很多很多次,這個JavaScript函數...jQuery的等價於[功能]從JavaScript

function showHideObjects() 
{ 
    var args; 
    args = showHideObjects.arguments; 

    for(var i=0;i<args.length;i++) 
    { 
     if(document.getElementById(args[i])) 
     { 
      if(args[i+1] == 'flip') 
      { 
       if(document.getElementById(args[i]).style.display == '') 
       { document.getElementById(args[i]).style.display = 'none';} 
       else 
       { document.getElementById(args[i]).style.display = '';} 
      } 
      else 
      {  
       document.getElementById(args[i]).style.display = args[i+1]; 
      } 
     } 
     i++; 
    } 

} 

現在我用ASP.NET和工作的需要相同的功能,但在jQuery中,但我無法在jQuery中找到任何有關動態參數的信息。有沒有辦法在jQuery中做到這一點?

爲了提供更多的背景知識......你可以把上面的代碼有這樣一行... showHideObjects('div1','none'),它會隱藏DIV1。或者你可以打電話... showHideObjects('div1','none','div2','','div3','flip')它會隱藏div1,顯示div2和切換div3隱藏或顯示。

+0

你可以給出一個「假」的例子,你想如何在jQuery中使用它?換句話說,爲了說明的目的,只需編寫一些jQuery-ish語法。就目前來看,你的問題並不清楚。實際上,有很多地方可以在jQuery方法中使用多個參數......事實上,在其中幾乎所有的地方:$('div').css({height:'10px',width:'30px 」,位置: '絕對' ...}); – maxedison

+1

jQuery是使用Javascript構建的。同樣的事情也可以在jQuery中工作,因爲jQuery不會改變語言的語義。 – Mrchief

+0

jQuery不是一種語言。它是一個JavaScript庫。 –

回答

4

jQuery只是JavaScript。你的代碼在jQuery中可以正常工作。

2

它純粹是一個JavaScript功能。 jquery沒有任何特別的功能。

2

正如一些已經說過,jQuery是JavaScript和您的代碼將工作得很好。但是你可以用jQuery做同樣的事情,你現在正在使用你的函數。您正在獲取更改爲顯示無或無的元素。

jQuery有選擇器,你可以用它來選擇從DOM到你想要做的事,以該元素。你可以使用選擇器來選擇你想要的元素,然後使用.toggle()。它和你的函數完全一樣,只有一行代碼。

編輯:添加了一個例子:

如果你有一個div,其中有一類hideNseek,你可以用它來切換它來顯示或隱藏。

$(".hideNseek").toggle(); 

$(」 hideNseek 「)是選擇所有具有該名稱的類的選擇器。

1

像其他人一樣,你的功能將工作得很好。你不需要jQuery來做你正在做的事情。如果你想使用jQuery,你可以這樣做:

function showHideObjects() { 
    var args = arguments, 
     l=args.length; 

    for (var i=0; i<l; i++) { 
     var elem = $("#"+args[i]), 
      type = args[i+1]; 

     if (elem.length) { 
      if (type == "flip") { 
       elem.toggle(); 
      } else { 
       elem.css("display", type); 
      } 
     } 
     i++ 
    } 
} 
+0

+1擊敗我吧! – Mrchief

0

你不能在JQuery組中調用不同的動作。但是,您可以通過使用適當的選擇器來獲取組,從而對一組元素執行相同的操作(隱藏,顯示,切換)。下面是一個有按鈕切換所有的div元素和所有的span元素與JQuery的切換功能的頁面上,有一個fiddle測試沿着一個簡單的例子:

HTML:

<div>div 1</div> 
<span>span 1</span> 
<div>div 2</div> 
<span>span 1</span> 

<input id="toggleSpans" type="button" value="toggle spans"/> 
<input id="toggleDivs" type="button" value="toggle divs"/> 

JavaScript的:

$('#toggleDivs').click(function(){ 
    $('div').toggle(); 
}); 
$('#toggleSpans').click(function(){ 
    $('span').toggle(); 
}); 

如果這還不夠好,你可以很容易地組和你做你的舊JavaScr調用這些方法中的自定義函數ipt函數,或者只保留你的舊方法。

UPDATE:

退房不同selectors就可以使用。在你的具體情況下,你需要使用ID Selector以及Multiple Selector,但是如果你允許傳入任何JQuery選擇符而不是僅僅傳入ID,你可以使你的函數更加強大。例如:

showHideObjects('#div1, <otherSelectorsToHide>','none', 
    '#div2, <otherSelectorsToShow>','', 
    '#div3, <otherSelectorsToToggle>','flip');