将jQuery ID作为参数传递给JavaScript函数

时间:2011-03-30 11:02:13

标签: javascript jquery html

的Javascript

function changeInitial(init,alter)
{   
<!--alert(alter);-->

init.parent().hide();
alter.parent().show();
}

HTML

<div class="form_item">
   <div class="form_label">
         <label>Account</label>
   </div>
   <span id="new_ac">
       <input type="text"/>
       <a id="create_ac" onclick ='changeInitial($("#create_ac, #select_ac"));'>
           Select Existing Account
       </a>
   </span>
   <span id="existing_ac">
       <select>
         <option>Select an account</option>
         <option>Customer</option>
         <option>Competitor</option>
         <option>Investor</option>
         <option>Partner</option>
         <option>Reseller</option>
         <option>Supplier</option>
       </select>
       <a id="select_ac">Create new Account</a>
    </span>
</div>

Firebug一直告诉我“alter”未定义。请问有什么我想念的吗? “init”工作正常。

4 个答案:

答案 0 :(得分:3)

在HTML中的“changeInitial(...)”调用中,请更改为:

onclick='changeInitial($("#create_ac"), $("#select_ac"));'

你这样做的方式只是指定一个参数。

答案 1 :(得分:2)

应该是:

onclick ='changeInitial($("#create_ac"),$("#select_ac"));'

否则它只是一个jquery对象。

答案 2 :(得分:2)

你为什么使用onclick?

使用jquery代替:

$(document).ready(function() {
    $('#create_ac').click(function(){
        changeInitial($("#create_ac"), $('#select_ac'));
    });
});

   function changeInitial(init,alter)
{   
    <!--alert(alter);-->

    init.parent().hide();
    alter.parent().show();
}

在此处查看我的示例 - http://jsfiddle.net/ajthomascouk/qqksd/

<强>更新

$(document).ready(function() {
    $('#create_ac').click(function(){
        changeInitial($("#create_ac"), $('#select_ac'));
    });
    $('#select_ac').click(function(){
        changeInitial($("#select_ac"), $('#create_ac'));
    });
});

Updated fiddle

更新2

$(document).ready(function() {
    $('a').click(function(){
        changeInitial($(this).attr('id'), $('#select_ac'));
    });
});

答案 3 :(得分:2)

  
$(function(){
  $('span a').click(function(){ //work with pairs just like an accordion
    $(this).parent(':visible').hide().siblings().show();
  });
});

<!-- you should use classe's instead of id's -->
<span><a href="#" class="select_ac">Create new Account</a></span>
<span><a href="#" class="create_ac">Select Existing Account</a></span>

 .existing_ac {display:none } /* hidden at page load */