Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery向上而不是向下遍历_Jquery - Fatal编程技术网

Jquery向上而不是向下遍历

Jquery向上而不是向下遍历,jquery,Jquery,我有一个引导下拉列表,我正在尝试填充它,我想你们会用这个值调用header,就像你们在常规html下拉列表中看到的那个样。因此用户知道他们在菜单中选择了什么 我的问题是,如果在一个页面上有多个下拉列表,jquery将同时针对这两个下拉列表,而不仅仅是我从中选择的下拉列表。通常我会通过添加$(this.parent())来解决这个问题,但是html有点复杂,我真的不想做一系列的工作 .parent().parent().parent() 一定有更好的方法来做这件事,我错过了,或者干脆忘记了 我的h

我有一个引导下拉列表,我正在尝试填充它,我想你们会用这个值调用header,就像你们在常规html下拉列表中看到的那个样。因此用户知道他们在菜单中选择了什么

我的问题是,如果在一个页面上有多个下拉列表,jquery将同时针对这两个下拉列表,而不仅仅是我从中选择的下拉列表。通常我会通过添加
$(this.parent()
)来解决这个问题,但是html有点复杂,我真的不想做一系列的工作
.parent().parent().parent()

一定有更好的方法来做这件事,我错过了,或者干脆忘记了

我的html看起来像

<p><label class="control-label" data-bind="html: label"></label></p>
<div class="dropdown" data-bind="cssProperties: properties, css: { hidden : EvalDisplay() == false }">
    <button class="btn btn-default dropdown-toggle col-md-12 dropBtn" type="button" id="dropdownMenu1" data-toggle="dropdown">
        <span class='pull-left'  data-bind="value: value,attr: { 'name' : id}"></span>
        <span class="caret pull-right"></span>
        <p class='clearfix'></p>
    </button>
    <ul class="dropdown-menu side-dropdown" role="menu">
        <!-- ko foreach: options -->
            <li role="presentation"><a role="menuitem" tabindex="-1" data-bind="html: Value"></a></li>
        <!-- /ko -->
    </ul>
    <p class='clearfix'></p>
</div>

  • 我也一直在玩
    parentsUtil()
    ,但这似乎并不正确

    任何帮助都太好了

    使用以下命令:

    $(".dropdown-menu li a").click(function(){
        $(this).closest('.dropdown').find('.btn:first-child').html('<span class="pull-left">'+$(this).text()+'</span><span class="caret pull-right"></span>').val($(this).text());
    });
    
    $(“.下拉菜单a”)。单击(函数(){
    $(this).closest('.dropdown').find('.btn:first child').html('+$(this.text()+)).val($(this.text());
    });
    

    为什么要避免使用
    .parent()
    链?我真的只想避免大量的.parent()字符串。通常,这是使用
    来完成的。最近的()
    @Barmar,我正在尝试使用最近的,但是如果我的内存是正确的(时间已经晚了,所以这很可能不正确)最接近的元素向下移动,而不是向上移动。不,你的记忆是错误的
    .closest()
    上升,
    .find()
    下降。但这似乎不想在小提琴中工作。。。它应该是
    .dropdown
    ,而不是
    .dropBtn
    ,因为
    .dropBtn
    不是
    li a
    的祖先。
    $(".dropdown-menu li a").click(function(){
        $(this).closest('.dropdown').find('.btn:first-child').html('<span class="pull-left">'+$(this).text()+'</span><span class="caret pull-right"></span>').val($(this).text());
    });