From 573471f3871688172832c901d9a1eafbba70ba7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=B5=A9=E4=B9=90?= <89932980@qq.com> Date: Mon, 21 Mar 2016 11:43:52 +0800 Subject: [PATCH] =?UTF-8?q?updated=20=E5=B1=82=E6=AC=A1=E4=B8=80=E5=A4=9A?= =?UTF-8?q?=E5=B0=B1=E5=81=87=E6=AD=BB=E7=9A=84=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/relationship.js | 65 +++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/script/relationship.js b/script/relationship.js index d5b4b92..901e5f7 100644 --- a/script/relationship.js +++ b/script/relationship.js @@ -106,10 +106,6 @@ str:',$1#,xs$1' }, /* 孩子 */ - {//夫妻的孩子就是自己的孩子 - exp:/,[wh](,[ds])/g, - str:'$1' - }, {//孩子的姐妹是自己的女儿(年龄判断) exp:/,[ds]&o,ob/g, str:',s&o', @@ -135,10 +131,6 @@ str:',s', }, /* 夫妻 */ - {//夫妻的对方是自己 - exp:/(,w,h)|(,h,w)/g, - str:'' - }, {//自己是女性,女儿或儿子的妈妈是自己 exp:/(,[mwd](&[ol])?|([olx]s)),[ds](&[ol])?,m/g, str:'$1' @@ -163,6 +155,14 @@ exp:/^,[ds],f(.+)?$/, str:'$1#,h$1' }, + {//夫妻的孩子就是自己的孩子 + exp:/,[wh](,[ds])/g, + str:'$1' + }, + {//夫妻的对方是自己 + exp:/(,w,h)|(,h,w)/g, + str:'' + }, ]; var _data = { @@ -476,32 +476,37 @@ //简化选择器 function selector2id(selector){ var result = []; + var hash = {}; var getId = function(selector){ - var s; - // console.log('in#',selector); - do{ - s = selector; - for(var i in _filter){ - var item = _filter[i]; - if(item['con']){ - if(selector.match(item['con'])){ + var s=''; + if(!hash[selector]){ + hash[selector] = true; + var status = true; + do{ + s = selector; + for(var i in _filter){ + var item = _filter[i]; + if(item['con']){ + if(selector.match(item['con'])){ + selector = selector.replace(item['exp'],item['str']); + } + }else{ selector = selector.replace(item['exp'],item['str']); } - }else{ - selector = selector.replace(item['exp'],item['str']); + if(selector.indexOf('#')>-1){ + var arr = selector.split('#'); + for(var i=0;i-1){ - var arr = selector.split('#'); - for(var i=0;i