【问题标题】:Set value of menu list option in to another select option将菜单列表选项的值设置为另一个选择选项
【发布时间】:2022-11-10 02:01:29
【问题描述】:

我希望从菜单列表中选择一个值时,该值将分配给选择选项。

我的菜单列表是这样的:

<ul class="list-group" id="myUL">
  <li><a href="#">Garden</a>
      <ul>
         <li><a id="center_1" value="tree_1">Tree 1</a></li>
         <li><a id="center_2" value="tree_2">Tree 2</a></li>
         <li><a id="center_3" value="tree_3">Tree 3</a></li>           
      </ul>
  </li>
  ......
</ul>

选择Tree 1 后,其值将分配给此select option

<select class="form-control">
    <option id="output">'selected value'</option>
</select>

如果选项中的选定值是Tree 1,那么第二个选项将显示其子值

也许像这样(插图):

【问题讨论】:

  • 你也在使用 jQuery 吗?
  • @PunitGajjar 如果 jQuery 可以解决我的问题,我也会使用它。

标签: javascript html


【解决方案1】:

您可以使用 vanila js 轻松完成此操作。只需在第一个选择选项上添加一个 onchange eventlistner ,这意味着当您从第一个选择中选择某些内容时,将触发 onchange 事件并导致出现第二个选择选项。而已 !!这肯定会解决你的问题。

let select2=document.getElementById("select2")
let show=()=>{
    select2.style.visibility="visible"
}
<select id="select1" onchange="show()">
    <option id="center_1" class="center" value="tree_1">Tree 1</option>
    <option id="center_2" class="center" value="tree_2">Tree 2</option>
    <option id="center_3" class="center" value="tree_3">Tree 3</option>           
</select>
<select id="select2" style="visibility: hidden">
    <option value="apple">apple</option>
    <option value="orange">orange</option>
    <option value="banana">banana</option>
</select>

【讨论】:

  • 谢谢,这是最简单的方法之一。
【解决方案2】:

$(document).ready(function(){
        var column1RelArray = [];

        $('#column1 li').each(function() {
           column1RelArray.push($(this).text());
        });



        $.each(column1RelArray, function( index, menuItem ) {


            var optionExists = ($('#columnsAvailable option[value='+menuItem+']').length > 0);

            if(!optionExists)
            {
                $('#columnsAvailable').append("<option value='"+menuItem+"'>"+menuItem+"</option>");
            }

        });


    });
<li>
    <a href="#">Garden</a>
    <ul id="column1">
        <li>Tree 1</li>
        <li>Tree 2</li>
        <li>Tree 3</li>
    </ul>
</li>

<select class="form-control" id="columnsAvailable">
</select>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

首先,在选择框中添加一些 ID

<select class="form-control" id="columnsAvailable">

我假设您也必须使用 jQuery,因此在将您的值附加到选择框之前,您想检查该值是否存在。

检查下面的代码

var menuItem = "Tree1";

var optionExists = ($('#columnsAvailable option[value='+menuItem+']').length > 0);

if(!optionExists)
{
    $('#columnsAvailable').append("<option value='"+menuItem+"'>"+menuItem+"</option>");
}

使用var menuItem = "Tree1";,您可以使用自己的值来获取点击事件或任何您希望的值

【讨论】:

  • 感谢您的快速回复。但是我如何将菜单列表Garden 中的值分配给选项选择
  • @Jayzz,我现在明白你的意思了.. 给我几分钟
  • @Jayzz,我已经编辑了代码,如果你可以检查并让我知道你是否知道我做了什么
  • 我尝试添加您的代码,但出现错误:Uncaught Error: Syntax error, unrecognized expression: #columnsAvailable option[value=Tree 1]。我正在使用&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"&gt;&lt;/script&gt;
  • 正如我所说,首先,在您的选择框中添加一些 ID <select class="form-control" id="columnsAvailable"> 尝试运行 sn-p 并将您的代码与我的代码进行比较,您会得到更好的主意
猜你喜欢
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
相关资源
最近更新 更多