updated 添加找关系功能
This commit is contained in:
parent
777dcb41e5
commit
a55648316f
21
index.html
21
index.html
@ -18,11 +18,14 @@
|
|||||||
<label for="male"><input id="male" type="radio" name="sex" value="1" checked>男</label>
|
<label for="male"><input id="male" type="radio" name="sex" value="1" checked>男</label>
|
||||||
<label for="female"><input id="female" type="radio" name="sex" value="0">女</label>
|
<label for="female"><input id="female" type="radio" name="sex" value="0">女</label>
|
||||||
</p>
|
</p>
|
||||||
|
<p>计算类型:
|
||||||
|
<label for="default"><input id="default" type="radio" name="type" value="default" checked>找称呼</label>
|
||||||
|
<label for="chain"><input id="chain" type="radio" name="type" value="chain">找关系</label>
|
||||||
|
</p>
|
||||||
<p>称呼方式:
|
<p>称呼方式:
|
||||||
<label for="call"><input id="call" type="radio" name="reverse" value="0" checked>我称呼对方</label>
|
<label for="call"><input id="call" type="radio" name="reverse" value="0" checked>我称呼对方</label>
|
||||||
<label for="called"><input id="called" type="radio" name="reverse" value="1">对方称呼我</label>
|
<label for="called"><input id="called" type="radio" name="reverse" value="1">对方称呼我</label>
|
||||||
</p>
|
</p>
|
||||||
<p>家庭关系:</p>
|
|
||||||
<p>
|
<p>
|
||||||
<textarea id="input" placeholder="人物间用'的'字分开…"></textarea>
|
<textarea id="input" placeholder="人物间用'的'字分开…"></textarea>
|
||||||
</p>
|
</p>
|
||||||
@ -74,7 +77,9 @@
|
|||||||
<script>
|
<script>
|
||||||
(function(){
|
(function(){
|
||||||
var $sex = document.getElementsByName('sex');
|
var $sex = document.getElementsByName('sex');
|
||||||
|
var $type = document.getElementsByName('type');
|
||||||
var $reverse = document.getElementsByName('reverse');
|
var $reverse = document.getElementsByName('reverse');
|
||||||
|
var $radio = document.getElementsByTagName('INPUT');
|
||||||
var $textarea = document.getElementsByTagName('TEXTAREA');
|
var $textarea = document.getElementsByTagName('TEXTAREA');
|
||||||
var $btns = DOMUtil.getElementsByClassName('btn');
|
var $btns = DOMUtil.getElementsByClassName('btn');
|
||||||
var $buttons = DOMUtil.getElementsByClassName('input-button');
|
var $buttons = DOMUtil.getElementsByClassName('input-button');
|
||||||
@ -91,8 +96,9 @@
|
|||||||
var value = $textarea[0].value.trim();
|
var value = $textarea[0].value.trim();
|
||||||
if(value){
|
if(value){
|
||||||
var sex = $sex[0].checked?1:0;
|
var sex = $sex[0].checked?1:0;
|
||||||
|
var type = $type[0].checked?'default':'chain';
|
||||||
var reverse = !$reverse[0].checked;
|
var reverse = !$reverse[0].checked;
|
||||||
var result = relationship({text:value,sex:sex,reverse:reverse});
|
var result = relationship({text:value,sex:sex,reverse:reverse,type:type});
|
||||||
$textarea[1].value = '';
|
$textarea[1].value = '';
|
||||||
if(result.length){
|
if(result.length){
|
||||||
$textarea[1].value = result.join('\n');
|
$textarea[1].value = result.join('\n');
|
||||||
@ -116,21 +122,14 @@
|
|||||||
toggle('爸爸,老公,儿子,哥哥,弟弟'.indexOf(name)>-1);
|
toggle('爸爸,老公,儿子,哥哥,弟弟'.indexOf(name)>-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(var i=0;i<$sex.length;i++){
|
for(var i=0;i<$radio.length;i++){
|
||||||
$sex[i].onchange=function(){
|
$radio[i].onchange=function(){
|
||||||
toggle($sex[0].checked);
|
toggle($sex[0].checked);
|
||||||
if($textarea[1].value){
|
if($textarea[1].value){
|
||||||
count();
|
count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(var i=0;i<$reverse.length;i++){
|
|
||||||
$reverse[i].onchange = function(){
|
|
||||||
if($textarea[1].value){
|
|
||||||
count();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
$buttons[0].onclick = function(){
|
$buttons[0].onclick = function(){
|
||||||
var value = $textarea[0].value.trim();
|
var value = $textarea[0].value.trim();
|
||||||
var index = value.lastIndexOf('的');
|
var index = value.lastIndexOf('的');
|
||||||
|
@ -289,7 +289,7 @@
|
|||||||
'm,m':['外婆','姥姥','阿婆'],
|
'm,m':['外婆','姥姥','阿婆'],
|
||||||
'm,m,f':['外曾外祖父','外太外公','太姥爷'],
|
'm,m,f':['外曾外祖父','外太外公','太姥爷'],
|
||||||
'm,m,m':['外曾外祖母','外太外婆','太姥姥'],
|
'm,m,m':['外曾外祖母','外太外婆','太姥姥'],
|
||||||
'm,m,xb':['外舅公','外舅祖父','舅姥爷','舅外祖父','舅外公'],
|
'm,m,xb':['外舅公','外舅祖父','舅姥爷','舅外祖父','舅外公','舅公'],
|
||||||
'm,m,xb,w':['外舅婆','外舅祖母','舅姥姥'],
|
'm,m,xb,w':['外舅婆','外舅祖母','舅姥姥'],
|
||||||
'm,m,xb,s':['表舅','表舅父'],
|
'm,m,xb,s':['表舅','表舅父'],
|
||||||
'm,m,xb,s,w':['表舅妈','表舅母'],
|
'm,m,xb,s,w':['表舅妈','表舅母'],
|
||||||
@ -686,10 +686,22 @@
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//简化选择器
|
||||||
|
function getChainById(id){
|
||||||
|
var arr = id.split(',');
|
||||||
|
var items = [];
|
||||||
|
for(var i = 0;i<arr.length;i++){
|
||||||
|
var key = arr[i].replace(/&[ol]/,'');
|
||||||
|
items.push(_data[key][0]);
|
||||||
|
}
|
||||||
|
return items.join('的');
|
||||||
|
}
|
||||||
|
|
||||||
function relationship(parameter){
|
function relationship(parameter){
|
||||||
var options = {
|
var options = {
|
||||||
text:'',
|
text:'',
|
||||||
sex:-1,
|
sex:-1,
|
||||||
|
type:'default', //为'chain'时,reverse无效
|
||||||
reverse:false
|
reverse:false
|
||||||
};
|
};
|
||||||
for (var p in parameter) {
|
for (var p in parameter) {
|
||||||
@ -703,29 +715,36 @@
|
|||||||
// console.log('ids#',ids);
|
// console.log('ids#',ids);
|
||||||
for(var j=0;j<ids.length;j++){
|
for(var j=0;j<ids.length;j++){
|
||||||
var id = ids[j];
|
var id = ids[j];
|
||||||
if(options.reverse){
|
if(options.type=='chain'){
|
||||||
id = reverseId(id,options.sex);
|
var data = getChainById(id);
|
||||||
}
|
if(data){
|
||||||
if(_data[id]){ //直接匹配称呼
|
result.push(data);
|
||||||
result.push(_data[id][0]);
|
|
||||||
}else{ //高级查找
|
|
||||||
var data = getDataById(id); //忽略属性查找
|
|
||||||
if(!data.length){ //当无精确数据时,忽略年龄条件查找
|
|
||||||
id = id.replace(/&[ol]/g,'');
|
|
||||||
data = getDataById(id);
|
|
||||||
}
|
}
|
||||||
if(!data.length){
|
}else{
|
||||||
id = id.replace(/[ol]/g,'x');
|
if(options.reverse){
|
||||||
data = getDataById(id);
|
id = reverseId(id,options.sex);
|
||||||
}
|
}
|
||||||
if(!data.length){
|
if(_data[id]){ //直接匹配称呼
|
||||||
var l = id.replace(/x/g,'l');
|
result.push(_data[id][0]);
|
||||||
data = getDataById(l);
|
}else{ //高级查找
|
||||||
var o = id.replace(/x/g,'o');
|
var data = getDataById(id); //忽略属性查找
|
||||||
data = data.concat(getDataById(o));
|
if(!data.length){ //当无精确数据时,忽略年龄条件查找
|
||||||
}
|
id = id.replace(/&[ol]/g,'');
|
||||||
for(var d=0;d<data.length;d++){
|
data = getDataById(id);
|
||||||
result.push(data[d][0]);
|
}
|
||||||
|
if(!data.length){
|
||||||
|
id = id.replace(/[ol]/g,'x');
|
||||||
|
data = getDataById(id);
|
||||||
|
}
|
||||||
|
if(!data.length){
|
||||||
|
var l = id.replace(/x/g,'l');
|
||||||
|
data = getDataById(l);
|
||||||
|
var o = id.replace(/x/g,'o');
|
||||||
|
data = data.concat(getDataById(o));
|
||||||
|
}
|
||||||
|
for(var d=0;d<data.length;d++){
|
||||||
|
result.push(data[d][0]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user