Jquery在不使用值的情况下选择更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jquery在不使用值的情况下选择更改相关的知识,希望对你有一定的参考价值。

我有一些jquery代码使用on change函数来显示另一个选择框。目前,它正在使用<option value="">,我如何使用不同的属性,如类(或者数据索引或类似)?

我不能使用值,因为他们将在表单中发布不同的数据。

小提琴:http://jsfiddle.net/ks6cv/1466/

$('#Picker').on('change', function() {
  if ($(this).val() === "colour") {
    $("#colour").show()
  } else {
    $("#colour").hide()
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <label for="Picker">Picker</label>
      <select name="Picker" id="Picker">
         <option></option>
         <option value="colour">select colour</option>
         <option value="spa">select size</option>
      </select>
    </td>
  </tr>
  <tr id="colour" style="display:none;">
    <td>
      <label for="specify">Colour</label>
      <select id="QuoteSALES_LOCATION_ID_4" name="Quote.SALES_LOCATION_ID" value="Email / web">
        <option></option>
        <option>colour 1</option>
        <option>colour 2</option>
    </select>
    </td>
  </tr>
</table>
答案

你可以在data-attr中使用value而不是option

$('#Picker').on('change', function() {
  $(this).find(':selected').data("value") === "colour" ?
    $("#colour").show() : $("#colour").hide()
  $(this).find(':selected').data("value") === "spa" ?
    $("#spa").show() : $("#spa").hide()
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <label for="Picker">Picker</label>
      <select name="Picker" id="Picker">
         <option></option>
         <option data-value="colour">select colour</option>
         <option data-value="spa">select size</option>
      </select>
    </td>
  </tr>

  <tr id="colour" style="display:none;">
    <td>
      <label for="specify">Colour</label>
      <select id="QuoteSALES_LOCATION_ID_4" name="Quote.SALES_LOCATION_ID" value="Email / web">
        <option></option>
        <option>colour 1</option>
        <option>colour 2</option>
    </select>
    </td>
  </tr>

  <tr id="spa" style="display:none;">
    <td>
      <label for="spa-test">spa choice</label>
      <select id="spa-test" name="spa-test" value="Email / web">
        <option></option>
        <option>spa 1</option>
        <option>spa 2</option>
    </select>
    </td>
  </tr>
</table>

以上是关于Jquery在不使用值的情况下选择更改的主要内容,如果未能解决你的问题,请参考以下文章

如何在不更改 matplotlib 默认值的情况下使用 seaborn?

如何在不创建新片段的情况下显示片段?

在不提供新版本的情况下更改 info.plist 值的方法

Excel 2010:如何在不修改其输入值的情况下跨多个单元格更改公式?

在不更改像素值的情况下将 svg 转换为 png

如何在不刷新网页的情况下使用 ajax 和 jquery 动态更改 Datatables 的多个列标题?