jquery相当新,所以我可能会犯一个简单的错误,但我似乎无法找到它。目前我有一个选择下拉列表,我想将用户发送到他们选择的选项构建的网址。目前我为我的jquery提供了这个:
$('#sizeSelect').change(function () {
var singleValue = $(this).find('option:selected').val();
var singleUrl = '/products/length' + '~' + escape(singleValue);
alert(escape(singleValue));
alert(singleUrl);
alert('/products/length' + '~' + escape(singleValue));
window.location = $(this).find('option:selected').attr('href', 'singleUrl');
});
我在那里收到警报,让我看看一切是如何组合在一起的。当我到达我的实际window.location时,构建的url中包含[object%20Object]。所以任何帮助都会对一个有点新的jquery用户表示赞赏。
答案 0 :(得分:3)
为什么不直接将您的用户发送到singleUrl
变量?
window.location = singleUrl;
我不确定你在最后一行要做什么:
$(this).find('option:selected')
将返回选定的li
元素,但它将作为对象返回。您需要像之前一样使用.val()
来返回li
的值。
第二部分.attr('href', 'singleUrl')
将尝试查找href
元素的li
属性(不存在),并将其值设置为singleUrl
,真的不会为你做任何事。
答案 1 :(得分:0)
singleUrl
是一个变量,而不是一个字符串。改为:
window.location = $(this).find('option:selected').attr('href', singleUrl);