我想更新cookie(通过update.php)并通过传输新数据(id,value)重新加载网站。值1是预先选择的,并且使用jQuery设置str = 1,而不是选择的选项值,例如6。
$( ".a2d" ).change(function() {
var prodId = this.id;
var e = document.getElementById(prodId);
var str = e.options[e.selectedIndex].value;
var url = "../update.php?id=" + prodId + "&updateNewValue=" + str;
$(location).attr('href',url);
});
HTML:
<select class="a2d" id="2" name="2">
<option value="0">0</option>
<option value="1" selected="">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
使用
var str = $('#' + prodId).options[this.selectedIndex].val();
它似乎工作得更好(因为它获得了正确的选定值),但是firebug中的错误说:
未捕获的TypeError:无法读取属性&#39; 6&#39;未定义的
答案 0 :(得分:1)
$('#' + prodId)
这是一个jquery对象,而不是javascript对象因此使用它:
document.getElementById(prodId).options[this.selectedIndex].value;
答案 1 :(得分:1)
您无需获取所选索引,只需获取<select>
var str = $('#' + prodId).val();
但由于prodId
为this.id
,您可以使用:
var str = $(this).val();
答案 2 :(得分:1)
只需使用this
引用
$(".a2d").change(function () {
var str = $(this).val();//or just this.value
var url = "../update.php?id=" + prodId + "&updateNewValue=" + str;
$(location).attr('href', url);
});
在您的情况下,$('#' + prodId)
返回一个jQuery对象,该对象没有属于dom元素引用的options
属性。
答案 3 :(得分:1)
要获得该值,请尝试
var str = $('#' + prodId).val();
或
var str = this.value;// best option