2017-04-18 113 views
2

我想根据在下拉列表中选择的颜色值更改td背景颜色。基于选项值更改td背景颜色

HTML:

<table border="1"> 
<tr> 
<th>Channel</th> 
<th>Health</th> 
</tr> 
<tr> 
<td>Mobile</td> 
<td class="tdcolor"> 
    <select > 
    <option value="0">Select</option> 
    <option value="1">Green</option> 
    <option value="2">Red</option> 
    <option value="3">Amber</option> 
    </select> 
</td> 
</tr> 
</table> 

的jquery:

$(document).ready(function(){ 
    $('td.tdcolor').change(function() { 
    $(this).css('background-color','green'); 
}); 
}); 

上面jQuery是不突出td元件保持tdcolor类的背景颜色。

如果有人可以帮助我如何改变这个使用jquery,这将是伟大的。

很多预先感谢。

回答

2

你应该为了得到从下拉列表中selected文本中使用pseudo-class选择。

var text = $(this).find(':selected').text(); 

$(document).ready(function(){ 
 
    $('td.tdcolor').change(function() { 
 
    $(this).css('background-color',$(this).find(':selected').text()); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table border="1"> 
 
<tr> 
 
<th>Channel</th> 
 
<th>Health</th> 
 
</tr> 
 
<tr> 
 
<td>Mobile</td> 
 
<td class="tdcolor"> 
 
    <select > 
 
    <option value="0">Select</option> 
 
    <option value="1">Green</option> 
 
    <option value="2">Red</option> 
 
    <option value="3">Blue</option> 
 
    </select> 
 
</td> 
 
</tr> 
 
</table>

+0

谢谢您的回答。你正在改变相邻的'td'元素。我只需要改变具有下拉菜单的'td'块。 谢谢 – harshavmb

+0

@harshavmb,完成。 –

0
$(document).ready(function(){ 
    $('select').change(function() { 
    $(".tdcolor").css('background-color','green'); 
}); 
}); 

应该.tdcolor不ddcolor

事件应该是select

1

$(document).ready(function() { 
 
    $('#color').change(function() {//add an id to html and use as selector 
 
    $(this).parent("td").css('background-color', $('option:selected', this).text());//use the text of selected option as parameter 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table border="1"> 
 
    <tr> 
 
    <th>Channel</th> 
 
    <th>Health</th> 
 
    </tr> 
 
    <tr> 
 
    <td>Mobile</td> 
 
    <td class="tdcolor"> 
 
     <select id='color'> 
 
    <option value="0">Select</option> 
 
    <option value="1">Green</option> 
 
    <option value="2">Red</option> 
 
    <option value="3">Amber</option> 
 
    </select> 
 
    </td> 
 
    </tr> 
 
</table>