<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<style>
dl{zoom:1;overflow:hidden}
dt,li{float:left;list-style:none;margin-left:10px;line-height:50px}
dt a,li a{display:block;text-align:center;border:solid 1px #666;width:50px;height:50px;line-height:50px}
li a.disabled{color:#aaa;border:dotted 1px #aaa;cursor:default}
li a.selected{border:solid 3px red;height:46px;width:46px;line-height:46px}
</style>
<title>jquery仿淘宝规格颜色选择效果</title>
<div>
<dl>
<dt>尺寸:</dt>
<dd>
<ul id="size">
<li><a href="javascript:;" title="S">S</a></li>
<li><a href="javascript:;" title="M">M</a></li>
<li><a href="javascript:;" title="L">L</a></li>
<li><a href="javascript:;" title="XS" >XS</a></li>
</ul>
</dd>
</dl>
<dl>
<dt>颜色:</dt>
<dd>
<ul id="color">
<li><a href="javascript:;" title="黑色">黑色</a></li>
<li><a href="javascript:;" title="白色" >白色</a></li>
<li><a href="javascript:;" title="红色" >红色</a></li>
<li><a href="javascript:;" title="黄色" >黄色</a></li>
<li><a href="javascript:;" title="蓝色" >蓝色</a></li>
</ul>
</dd>
</dl>
</div>
<script>
$('#size a,#color a').click(function () {
var a = $(this), isSize = a.closest('ul').attr('id') == 'size';
if (a.hasClass('disabled') || a.hasClass('selected')) return false;
$('#size a,#color a').removeClass('disabled');
$(isSize ? '#size a' : '#color a').removeClass('selected'); a.addClass('selected');
var s = ',' + (Rules[a.attr('title')] || []).join() + ','; //获取规则
$(isSize ? '#color a' : '#size a').each(function(){
if (s.indexOf(',' + this.title + ',') != -1) $(this).removeClass('selected').addClass('disabled');
});
});
//建立尺寸和颜色的排除值数组
var Rules = {
M: ['黑色'],
L: ['红色', '蓝色'],
XS: ['黄色'],
黑色: ['XS'],
白色: ['S', 'M','XS','L'],
红色: ['M']
}
</script>
</body>
</html>