【问题标题】:Change css based in Select option value selected在 Select option value selected 中更改 css
【发布时间】:2019-02-01 10:42:53
【问题描述】:

我有一种形式,一个选择一个问题,如果选择了确定的值,我不需要显示下一个问题。如何制作一个 jquery 代码来检测用户在 select 中选择了一个确定的选项并更改页面的 CSS?

<select>
   <option value="volvo">Volvo</option>
   <option value="saab">Saab</option>
   <option value="mercedes">Mercedes</option>
   <option value="audi">Audi</option>
</select>

【问题讨论】:

  • 展示你所拥有的,我们会看到你需要/可能会改进的地方
  • @jamesS 现在,我只有表单结构,我用一个例子编辑了这个问题。
  • @Rizwan ive 在我的回答中添加了一个 jsfiddle,希望这会有所帮助。

标签: javascript jquery html css


【解决方案1】:

你的问题有点含糊,但我认为这是你想要的:

 const value = $('#selectID option[value=""]').prop("selected", true);

 if (value....") {
     // do css stuff
 }

此外,您还可以像这样获取值/文本:

<select id="car_manufacturer">
   <option value="volvo">Volvo</option>
   <option value="saab">Saab</option>
   <option value="mercedes">Mercedes</option>
   <option value="audi">Audi</option>
</select>

<script>
   const element = document.getElementById("car_manufacturer");
   const value = element.options[element.selectedIndex].value;
   const text = element.options[element.selectedIndex].text;
 </script>

您可以在 select 元素上使用 onchange 事件扩展上述内容。

<select id="car_manufacturer" onchange="selectManufacturer(this)">

处理 CSS:

JavaScript:

document.body.style.backgroundColor = "red";

jQuery:

$("body").css("background-color","red");

小提琴

onchange 使用 css 操作的示例:

http://jsfiddle.net/9L0czmeq/

【讨论】:

  • 不错,但是选择更改值时我需要更改css。
  • 非常好@David,我如何使用类而不是正文来更改此处的 css:document.body.style.display = "none";??
  • jQuery - .addClass $( "#id" ).addClass( "class" );还有一个 .removeClass
  • JavaScript - var element = document.getElementById("div"); element.classList.add("class");
【解决方案2】:

据我了解,根据您的简短描述,您需要根据用户在选择框中选择的值做一些事情,我们称之为事件 onchange。我正在为您编写代码示例

<select onchange="somefunction($(this).val())">
 <option value="1">Option 1</option>
 <option value="2">Option 2</option>
 </select>

<script>
  function somefunction(value){
     if(value == 1){
      $("body").css("background-color","red");
     }
     if(value == 2){
       $("body").css("background-color","yellow");
     }
  }
   </script>

【讨论】:

  • 你能用javascript代码做一个代码吗?没有在选择标签中添加“onchange="somefunction($(this).val())”。
  • $("#car_manufacturer").onchange(function(){ });你也可以这样做
  • 是的,它可以工作。给你的jsfiddle添加一个body标签,你会看到效果
  • 我不使用 jsfiddle,但在我的 IDE 上我已经测试过了。它工作正常
  • @Rizwan 它在我的 IDE 中运行良好,但是当我把它放在我的网站上时,我收到了这个错误:未捕获的 ReferenceError: somefunction is not defined at HTMLSelectElement.onchange ((index):2473) onchange @ (index):2473 你能把这段代码都写在脚本里吗?
猜你喜欢
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 2015-06-10
  • 1970-01-01
  • 2022-01-23
  • 2018-09-15
  • 1970-01-01
  • 2020-08-22
相关资源
最近更新 更多