动态更改选择值
问题描述:
我需要在选择列表中获取所选选项(如果已更改)的值,并更改选择列表旁边的范围中的文本。问题是我不知道选择列表的ID。页面上有很多不同的选择列表(5-25 +),它们都是动态创建的,所以我不能在.change()
中指定id。以下是我有:动态更改选择值
的JavaScript:
$("select").change(function() {
var str = "";
str = $("select option:selected").text();
$(".out").text(str);
}).trigger('change');
(当然,这并不工作,将所有选择值的每个跨度)
HTML:
<select name="animal[]">
<option value="dog">dog</option>
<option value="cat">cat</option>
<option value="bird">bird</option>
<option value="snake">snake</option>
</select>
<span class="out"></span>
我错过了什么?
答
尝试是这样的:
$("select").change(function() {
var txt = $(this).val();
$(this).next('span.out').text(txt);
}).trigger('change');
答
试试这个:
$("select").each(function(){
var select = $(this),
out = select.next();
select.change(function() {
out.text(select.val());
});
}).trigger('change');
+0
http://stackoverflow.com/questions/48239/getting-the-id-of-the-element-that-fired-an-event-using-jquery似乎是,在事件处理程序中,“this”指的是事件。 – yilmazhuseyin 2010-08-13 14:52:13
答
你可以得到事件回调中使用$(this)
变更过的要素。尝试改变线
str = $("select option:selected").text();
到
str = $(this).find("option:selected").text();
答
试试这个:
$("select").change(function() {
var str = "";
str = $(this).find(":selected").text();
$(".out").text(str);
}).trigger('change');
它可能适用于添加文本的跨度,但不会帮助获得选择值。 – Scott 2010-08-13 14:48:08