当前位置: 首页 > 知识库问答 >
问题:

动态选择元素

司寇苗宣
2023-03-14

我有一个选择元素,里面有多个选项:

<select class="form-control" name="genere1">
   <option value="Alternative / Indie">Alternative / Indie</option>
   <option value="Classical Music">Classical Music</option>
   <option value="Country">Country</option>
   <option value="Easy Listening">Easy Listening</option>
   <option value="Electronic / Dance">Electronic / Dance</option>
   <option value="Hip Hop / Rap">Hip Hop / Rap</option>
   <option value="Jazz">Jazz</option>
   <option value="Latin / Reggaeton">Latin / Reggaeton</option>
   <option value="Other">Other</option>
   <option value="Pop">Pop</option>
   <option value="Reggae / Dancehall">Reggae / Dancehall</option>
   <option value="Rock">Rock</option>
   <option value="Spiritual">Spiritual</option> 
</select>

对于这里看到的每个选项元素,我都有另一个select元素。基本上,我在一个选择元素中列出了一系列音乐流派,在它下面,是与每一个“主流派”相关的子流派。

我想做的是使子体裁只有在相对体裁被选中时才可见。例如,如果用户选择“Pop”,我想向他们显示包含Pop子类型的相关选择字段。

我的HTML标记实际上是由WordPress插件生成的,不幸的是,我无法编辑它。也就是说,我不能在HTML中声明自定义值,因为它们是由插件自动生成的。我实际上在寻找一个简单的解决方案,比如:如果“主流派”是“摇滚”,那么显示“摇滚”输入子流派。我怎么能做这样的事?

共有1个答案

墨星鹏
2023-03-14

您可以使用链接两个选择并显示相应的子类型。数据集。选项。恐怕你在这里不会有一点JavaScript。

以下是您的特定用例的工作示例:

const genre = document.querySelector("#genre");
const subgenre = document.querySelector("#subgenre");
const subOptions = subgenre.querySelectorAll("option");

const setValue = (newValue) => {
  subgenre.innerText = null;
  for (let i = 0; i < subOptions.length; i++)
    subOptions[i].dataset.option === newValue &&
    subgenre.appendChild(subOptions[i]);
};

setValue(genre.value);
<select id="genre" onchange="setValue(this.value)">
  <option value="Metal">Metal</option>
  <option value="Rock">Rock</option>
</select>
<select id="subgenre">
  <option value="Metal" data-option="Metal">Thrash Metal</option>
  <option value="Metal" data-option="Metal">Death Metal</option>
  <option value="Metal" data-option="Metal">Black Metal</option>
  <option value="Rock" data-option="Rock">Classic Rock</option>
  <option value="Rock" data-option="Rock">Hard Rock</option>
</select>
 类似资料:
  • 问题内容: 该网站正在使用Prototype JS库。 页面加载后,它立即执行Ajax请求,该请求会拉出并显示页面的更多元素。 我需要能够选择那些动态创建的元素并使用method 隐藏它们。 我尝试使用选择和隐藏它们,但是这段代码没有“看到”动态元素。 我看到Prototype有方法,但是我不确定应该为我指定哪个Event?我尝试了事件“加载”,但没有成功。 我将不胜感激如何解决此问题的任何提示。

  • 问题内容: 我正在尝试使用FlaskForms将userID变量传递给WTForms。首先,我将显示可以正常工作的代码,然后显示需要修改的内容(该部分我不知道如何)。我要添加与某个组关联的新名称。 FlaskForm模型: 查看模型: 模板: 我在下拉列表中看到正确的列表,并且在提交时会给我正确的数字。 任务:我需要基于current_user.userID传递不同的列表。我正在使用SQLAlch

  • 以下是我需要做的: 但是当然,csv()函数接受一个字符串,而不是EL表达式。我需要能够在场景执行的适当时刻组成该字符串。 我可以像这样构建字符串: 但不幸的是,以下高管没有看到数据。在我看来,这似乎是某种范围问题。我猜feed()表达式正在做它应该做的事情,但是因为它不是外链的一部分,所以它没有被放置在它所属的位置。我应该打电话吗。馈送会话对象中的某个对象,以便将其连接到正在进行的链? 有没有关

  • 问题内容: 我知道这个问题已经被问过很多次了,但是我已经尝试了好几个小时,却没有任何效果,我是php和ajax的新手,所以,我可能会遗漏一个我不知道的小东西,我想要在这里实现的目的是,我希望用户选择一个食物组,然后基于该组显示配料表。 我单独测试了process.php文件,它运行良好,还测试了脚本,发生了什么事,当我注释掉并键入alert(parent)时,从$ .ajax开头的行不起作用了,我

  • 我想使用道具从标题h1-h6中选择,然后将样式和文本插入标题中。我现在有: 然后我意识到我以前从来没有自动选择元素类型,甚至不知道从哪里开始。这可以用反应来完成吗,怎么做?

  • 问题内容: 很明显,我的应用程序自动以默认状态(网址为:“ /”)启动。我们称它为state 。 如果某个条件是真实的,我想坚持一下。这意味着如果例如,那么我希望状态成为第一个加载的状态。 我的问题是,例如,当我检查该条件时,默认状态已经被加载并显示在视图中,然后才切换到state 。 有什么方法可以仅在检查条件后才阻止状态加载并启动它吗? 问题答案: 有一个可行的例子 如评论中所述,我们可以使用