代码之家  ›  专栏  ›  技术社区  ›  Aleksa Ristic

更改父元素值属性

  •  -2
  • Aleksa Ristic  · 技术社区  · 7 年前

    <td value='3' style='text-align: center'>
    <select class='selection' onchange=''>
        <option value='1'>1</option>
        <option value='2'>2</option>
        <option value='3'>3</option>
    </select>
    </td>
    

    我想做的是改变 select 家长- td 选择一个 onchange 事件。我怎样才能做到呢?

    PS正如你所看到的那样 td公司 -所以我有多行不能赋值 id 至td/选择

    2 回复  |  直到 7 年前
        1
  •  1
  •   Dhaval Pankhaniya    7 年前

    你想要这样的东西吗?

    function PresaberiSve(obj){
      $("td").removeClass("active");
      $(obj).closest("td").addClass("active");
    }
    .active{
      background-color:yellow;
      border: 10px solid yellow;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <table>
    <tr>
    <td value='3' style='text-align: center'>
    <select class='selection' onchange='PresaberiSve(this);'>
        <option value='1'>1</option>
        <option value='2'>2</option>
        <option value='3'>3</option>
    </select>
    </td>
    
    <td value='3' style='text-align: center'>
    <select class='selection' onchange='PresaberiSve(this);'>
        <option value='1'>1</option>
        <option value='2'>2</option>
        <option value='3'>3</option>
    </select>
    </td>
    <tr>
    </table>
        2
  •  1
  •   TheMisir    7 年前

    很简单:)

    <td value='3' style='text-align: center'>
        <select class='selection' onchange='this.parentNode.setAttribute("value", this.value);'>
            <option value='1'>1</option>
            <option value='2'>2</option>
            <option value='3'>3</option>
        </select>
    </td>
    

    或者可以使用script元素执行以下操作:

    <td value='3' style='text-align: center'>
        <select class='selection'>
            <option value='1'>1</option>
            <option value='2'>2</option>
            <option value='3'>3</option>
        </select>
    </td>
    
    <script>
        document.querySelectorAll('.selection').forEach(function(e){
            e.onchange = function(){ e.parentNode.setAttribute('value', e.value); });
        });
    </script>