【问题标题】:What is wrong with this jQuery if statement?这个 jQuery if 语句有什么问题?
【发布时间】:2015-03-10 15:46:29
【问题描述】:

此页面的目标是根据下拉选择显示不同的选项。在没有 if 语句的情况下,切换当前按需要工作。如何调整我的 if 语句以进行正确的比较?

<script src="~/Scripts/jquery-2.1.3.min.js"></script>
<link href="~/Content/SearchInventory.css" rel="stylesheet" />

<script>
    $(function () {
        $(".dropdown-menu li a").click(function () {
            var selection = $(this).parents(".btn-group").find('.selection').text($(this).text());
            if(selection =='Projectors') {
                $('#projectorSearch').toggle();
            }
        });
    });
</script>




<h2>Search Inventory</h2>

<div class="col-md-12">
    <div class="row">
        <div class="col-md-3">
            <div class="btn-group">
                <button class="btn btn-primary dropdown-toggle btn-lg" type="button" id="dropDownSelectItemType" data-toggle="dropdown" aria-expanded="true">
                    Select an Item Type
                    <span class="caret"></span>
                </button>
                <ul class="dropdown-menu" role="menu" aria-labeledby="dropDownSelectItemType">
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Projectors</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Desktop Printers</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Network Printers</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Tablets</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Televisions</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Polycom Phones</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Cameras</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Monitors</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Leased Printers</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Cell Phones</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Chair(ergo)</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Keyboard(ergo)</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Mouse(ergo)</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Footrest(ergo)</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Licensed Software</a></li>
                    <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Desk Phones</a></li>
                </ul>
            </div>
        </div>
    </div>
</div>
<div class="col-md-12">
    <div class="projectorSearch" id="projectorSearch">
        <label>onomonpeia</label>
    </div>
</div>

【问题讨论】:

  • .find('.selection') - class='selection' 在哪里?
  • 只需使用var selection = $(this).text();
  • var selection = $(this).parents(".btn-group").find('.selection').text($(this).text());不应该是var selection =$(this).text();吗?
  • @Satpal 谢谢你知道了!
  • @Scottie 好点,我是时间紧缩的受害者,我没有注意就从另一个函数中复制了那行代码,以为它正在做我想做的事

标签: javascript jquery asp.net .net


【解决方案1】:

您无需四处寻找点击的text,因为您已经可以访问引用为thisHTMLAnchorElement 元素

使用

 var selection = $(this).text();

代替

 var selection = $(this).parents(".btn-group").find('.selection').text($(this).text());

完整示例:

$(function () {
    $(".dropdown-menu li a").click(function () {
        var selection = $(this).text();
        if(selection =='Projectors') {
            $('#projectorSearch').toggle();
        }
});

这是Working Sample

【讨论】:

    【解决方案2】:

    你做得很好,但错过了一件事。

    var selection = $(this).parents(".btn-group").find('.selection').text($(this).text());
    

    此行将更改 .selection 的文本。但不返回 $(this).text()

    所以你必须将 $(this).text() 与字符串进行比较,而不是选择。

    或者只是重新定义选择,就像这两行一样。

    $(this).parents(".btn-group").find('.selection').text($(this).text());
    var selection = $(this).text()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多