我怎么能在一个URL中有两种类型的参数,其中一种以“”开头#"而另一个以“0”开头&"并且不替
How can I have two types of parameters in one URL, where one starts with "#" and the other one starts with "&" and without replacing the other?
两种类型的参数:尺寸和价格。目前,我可以点击在尺寸栏和价格栏中只选择/突出显示一个,而不会影响另一个。
当我单击一个大小时,会添加一个URL参数"#size=4"。单击其他大小将把当前URL参数替换为"#size=5"
或"#size=6".
当我单击价格时,会添加一个参数"#pmin=30&pmax=40"
。单击另一个价格将用"#pmin=40&pmax=50"
或替换当前参数
"#pmin=50&pmax=60".
问题是它还替换了大小参数。
问题:
如何将这两种类型的参数组合在一个URL中,其中一个以"#"开头,另一个以"&"开头,而不替换另一个?
目标URL参数:
example.com/#size=5&pmin=40&pmax=50
or
example.com/#pmin=40&pmax=50&size=5
我有这里的代码=>http://jsfiddle.net/philcyb/af70tw19/2/但是,URL和参数没有显示。它必须在本地或无论如何重新创建,以便显示参数。
HTML:
<div class="divContainer">
<div>Sizes</div>
<a class="sizes" href="#size=4" border="0">
<div class="inDivSize">4</div>
</a>
<a class="sizes" href="#size=5" border="0">
<div class="inDivSize">5</div>
</a>
<a class="sizes" href="#size=6" border="0">
<div class="inDivSize">6</div>
</a>
</div>
<div class="divContainer">
<div>Prices</div>
<a class="prices" href="#pmin=30&pmax=40" border="0">
<div class="inDivPrice"> $30 - $40 </div>
</a>
<a class="prices" href="#pmin=40&pmax=50" border="0">
<div class="inDivPrice"> $40 - $50 </div>
</a>
<a class="prices" href="#pmin=50&pmax=60" border="0">
<div class="inDivPrice"> $50 - $60 </div>
</a>
</div>
CSS:
<style type="text/css">
.divContainer {
float: left;
width: 200px;
height: 80px;
border: 1px solid #000;
text-align: center;
}
.inDivSize:hover, .inDivPrice:hover {
background-color: yellow;
}
.inDivSizeClicked, .inDivPriceClicked {
background-color: yellow;
}
</style>
JS/JQuery:
<script type="text/javascript">
$(document).ready( function() {
$(".inDivSize").click(function() {
$(".inDivSize").removeClass("inDivSizeClicked");
$(this).addClass("inDivSizeClicked");
});
$(".inDivPrice").click(function() {
$(".inDivPrice").removeClass("inDivPriceClicked");
$(this).addClass("inDivPriceClicked");
});
});
</script>
提前感谢SO
您可以尝试挂钩大小元素的点击事件
$(".sizes").click(function(e) {
var psize = $(this).attr('psize');
$('.prices').each(function() {
var priceParam = $(this).attr('href');
$(this).attr('href', priceParam.indexOf('size=') === -1 ? (priceParam + '&size=' + psize) : priceParam.replace(/size='d/, 'size='+ psize));
});
});
$('.prices').click(function() {
var priceParam = $(this).attr('href');
console.log(priceParam);
$('.sizes').each(function() {
var psize = $(this).attr('psize');
$(this).attr('href', priceParam.indexOf('size=') === -1 ? (priceParam + '&size=' + psize) : priceParam.replace(/size='d/, 'size=' + psize));
});
});
在文档中添加此代码我还修改了divContainer,添加了一个psize属性,这样我仍然可以确定a元素对应的大小
<div class="divContainer">
<div>Sizes</div>
<a class="sizes" href="#size=4" psize="4" border="0">
<div class="inDivSize">4</div>
</a>
<a class="sizes" href="#size=5" psize="5" border="0">
<div class="inDivSize">5</div>
</a>
<a class="sizes" href="#size=6" psize="6" border="0">
<div class="inDivSize">6</div>
</a>
</div>
希望这能有所帮助。
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 对id以某个字符串开头的元素进行计数
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 如果元素's的ID以数字开头
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 我怎么能在一个URL中有两种类型的参数,其中一种以“”开头#"而另一个以“0”开头&"并且不替
- Javascript正则表达式查找不以“”开头的单词;我的:"
- 使用“^"以检查字符串是否以另一个字符串开头
- 选择以"abc"开头的元素以“xyz"”结尾
- 造成这种错误的原因是什么?XML或文本声明不在entity"开头;解析xml时
- 正则表达式,查找不以="开头的URL's
- JQuery属性以"开头选择器定义
- Regex匹配可能或可能不以“”开头的字符串;“"A“;或“;一个“;
- 如何匹配以“”开头的令牌"在pegjs中
- JavaScript正则表达式帮助:文本字符串中以"开头的行;在某某日期,一些其他东西写了"