2011-08-01 78 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');