简体   繁体   English

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

[英]passing jQuery IDs as parameters a JavaScript function

Javascript Java脚本

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

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

Html 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 keeps telling me that "alter" is undefined. Firebug不断告诉我“ alter”未定义。 Please is there something I am missing? 请问我有什么想念的吗? "init" is working fine. “初始化”工作正常。

In your "changeInitial(...)" call in your HTML, change to this: 在HTML的“ changeInitial(...)”调用中,更改为:

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

The way you are doing it, you are only specifying a single parameter. 这样做的方式只是指定一个参数。

should be: 应该:

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

otherwise it's just one jquery object. 否则,它只是一个jquery对象。

Why are you using onclick? 为什么使用onclick?

Use jquery instead: 使用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();
}

check out my example here - http://jsfiddle.net/ajthomascouk/qqksd/ 在这里查看我的示例-http: //jsfiddle.net/ajthomascouk/qqksd/

UPDATE 更新

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

Updated fiddle 更新的小提琴

UPDATE 2 更新2

$(document).ready(function() {
    $('a').click(function(){
        changeInitial($(this).attr('id'), $('#select_ac'));
    });
});
$(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 */

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM