0

http://jsfiddle.net/LPCpR/

<select id="menu1">
    <option data-icon="arrow-u" data-iconpos="top">- SELECT -</option>
    <option data-icon="arrow-u" data-iconpos="bottom" selected="selected">Shrubs</option>
    <option data-icon="arrow-u" data-iconpos="left">Trees</option>
    <option data-icon="arrow-u" data-iconpos="right">Bushes</option>
</select>
<select id="menu2">
    <option data-icon="arrow-u" data-iconpos="top">- SELECT -</option>
    <option data-icon="arrow-u" data-iconpos="bottom" selected="selected">Shrubs</option>
    <option data-icon="arrow-u" data-iconpos="left">Trees</option>
    <option data-icon="arrow-u" data-iconpos="right">Bushes</option>
</select>
$('select').change(function () {
    if ($(this).is('#menu1')) {
        alert('menu hone has been changed')
    }
})

上記は 2 つのメニューと 1 つの条件を示しています。メニュー 1 が選択されている場合はアラートです。私のコードには実際には 5 つのメニューがあるので、合理化する必要があります。

条件を、変更されたメニューの ID に変数を割り当てる行に置き換える必要があります。どうやってするの?

4

5 に答える 5

2

これを試して、

$('select').change(function () {
    var id=$(this).attr('id');
    switch(id)
    {
        case "menu1":
            alert('menu 1 changed');
            break;
        case "menu2":
            alert('menu 2 changed');
            break;
    }
});

フィドル

于 2013-06-26T04:26:51.447 に答える
1

これを試して

 <select id="menu1" onchange="changeEvent(this);">
   <option data-icon="arrow-u" data-iconpos="top">- SELECT -</option>
   <option data-icon="arrow-u" data-iconpos="bottom" selected="selected">Shrubs</option>
   <option data-icon="arrow-u" data-iconpos="left">Trees</option>
   <option data-icon="arrow-u" data-iconpos="right">Bushes</option>
 </select>
 <select id="menu2" onchange="changeEvent(this);">
  <option data-icon="arrow-u" data-iconpos="top">- SELECT -</option>
  <option data-icon="arrow-u" data-iconpos="bottom" selected="selected">Shrubs</option>
  <option data-icon="arrow-u" data-iconpos="left">Trees</option>
  <option data-icon="arrow-u" data-iconpos="right">Bushes</option>
 </select>

JS

 function changeEvent(obj)
 {
    alert(obj.id);
 }

デモ

于 2013-06-26T04:29:41.267 に答える
0

id属性を使用してidを取得してみてください...以下の解決策を試して、どのメニューが変更されたかを確認してください。

  $('select').change(function () {
        if ($(this)) {
            alert( 'menu' + this.id + 'has been changed')
        }
    })
于 2013-06-26T04:29:29.243 に答える
0

これを試して

$('select').change(function () {

        alert(  $(this).attr('id') + 'has been changed')

})
于 2013-06-26T04:32:09.083 に答える
0
http://jsfiddle.net/LPCpR/12/


<select id="menu_one">
<option data-icon="arrow-u" data-iconpos="top">- SELECT -</option>
<option data-icon="arrow-u" data-iconpos="bottom" selected="selected">Shrubs</option>
<option data-icon="arrow-u" data-iconpos="left">Trees</option>
<option data-icon="arrow-u" data-iconpos="right">Bushes</option>
</select>
<select id="menu_two">
<option data-icon="arrow-u" data-iconpos="top">- SELECT -</option>
<option data-icon="arrow-u" data-iconpos="bottom" selected="selected">Shrubs</option>
<option data-icon="arrow-u" data-iconpos="left">Trees</option>
<option data-icon="arrow-u" data-iconpos="right">Bushes</option>
 </select>

JS:

 $('select').change(function () {

      var menuNo = $(this).attr("id").split("_");
      alert('menu '+menuNo[1]+' has been changed');

   });

ソリューションの js フィドルを見ることができます。

于 2013-06-26T04:38:39.273 に答える