JavaScript的两个小细节

这段时间在做项目尾声中遇到的一些小的Work Requirements,就直接写遇到的问题了。

1. 如图

JavaScript的两个小细节_第1张图片

客户需求允许添加两个duplicate的paragraph,当其状态为Optional时,在添加Rule的时候点击Modify Paragraph时弹出的页面中显示这些Paragraphs。下面的List显示在Table中,为了获取其状态-'Optional',费了一会功夫。

for (var i=0;i<length;i++){
	var paraid = window.opener.downloadList.rows[i].cells[0].outerText;
	var paraOV = window.opener.downloadList.rows[i].cells[1].firstChild.value;
	if (paraOV == "Optional"){
            // 具体的逻辑代码
        }
}

 

 特别是 window.opener.downloadList.rows[i].cells[1].firstChild.value; 搞了半天才,弄出来。 因为逻辑的需要要循环遍历父页面里的整个table,后来在以前别人的代码中找到firstChild这一属性,终才解决问题。写出来共遇到同样问题的兄弟姐妹参考。

还有就是添加的Rule中不允许有重复的,即使Paragraph中有重复的,后来在网上找到一段移除数组中重复元素的代码。

function unique(data){
    data = data || [];
    var a = {};
    for (var i=0; i<data.length; i++) {
        var v = data[i];
        if (typeof(a[v]) == 'undefined'){
              a[v] = 1;
        }
    };
    data.length=0; 
    for (var i in a){
        data[data.length] = i;
    }
    return data;
}

 

 感觉还不错,贴出来共同学习。

 

2.就是像baidu那样,输入完搜索关键字后,即使focus还在<input type="text">上,搜索按钮是<input type="button">的情况下,按下Enter键时,相当于点击button。

1.  
   <body onkeydown="bodyKeyDown();">
2. 
function bodyKeyDown() {
	if(event.keyCode == 13) {
		if(count == 0)
			document.getElementById("btnB").click();		
		else
			document.getElementById("btnA").click();
	}
}

 

 两处要注意的地方。当event.keyCode==13,就是按下Enter。 "btnA","btnB"为两个button的id。

 

 

如有不当之希望大家指点,谢谢!

你可能感兴趣的:(JavaScript)