如何制作动态的javascript类。

时间:2016-02-23 17:35:05

标签: javascript jquery

另一个问题!我正在使用Ajax来获取与OfficeId Dropdown相关联的更新的计费域ID。

我需要动态更改的if语句。这是我想要完成的。 我希望基于BillingDomainID隐藏某些字段。例如,如果BillingDomainID为1,我想隐藏字段。诀窍在于我希望能够随着时间的推移而扩展,以便它也可以在出现时用于其他ID。

到目前为止,这是我没有取得任何成功的。

    function getOfficeInfo(OID, BDID) { 
    //alert(OID); 
    //alert(BDID); 
    $.post("/UserControls/getOfficeInfo.asp", {OfficeID: OID}, function(data) {
        BDID.val(data); 

        var vBDID
        vBDID = ".BillingDomainID" + data;
        //alert(vBDID);

        if (data != 1) {
            $(vBDID).hide();
        }
    }); 
    //alert(data);
}

我只需要知道如何制作$(vBDID).hide();部分工作。

2 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题,因为你可以控制HTML我认为你有两种直接的方法:

创建字段地图到Billing Domains ID

Self.Generator.Element

然后您可以执行类似的操作(假设var fieldMap = { '1': ['first-name', 'last-name', ...], '2': ['first-name', 'last-name', 'ssn', ...], ... }; 是结算域ID:

data

在输入中添加类名,以指示显示哪些结算域ID

var $form = $('form');
// hide everything by default
$form.find('input').hide();
// show all fields that pertain to this domain
$form.find(fieldMap[data].map(function(field) {
  // gives you '[name="first-name"]'), etc.
  return '[name="'+field+'"]';
})).show();

然后:

<input type="text" name="first-name" class="domain-1 domain-2 domain-3" />

虽然如果你有很多域名,我觉得这样会有点混乱。

答案 1 :(得分:0)

我不确定为什么你的元素没有隐藏,除非你输错了你的类名。这是一个显示其工作原理的fiddle

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<button class="someClass" type="button">
Hi there
</button>






$(function(){

    var thing = '.someClass';

  $('button').on('click', function(){
        $(thing).hide(); 
  })
});