寫在前面:。。。。javascript
1字符串逆序html
function reverse(str){ return str.split("").reverse().join("");//直接用函數 var str1="";//從後向前輸出 for(var i=str.length-1;i>=0;i--){ str1+=str[i]; } return str1; var len=str.length;//字符串原地逆序 for(var i=0;i<len;i++){ str[i]=str[len-1-i]; } return str; }
2彈出對話框提示當前選中的是第幾個單選框java
<input type="radio" name="radioGroup" onclick="foo()"/> <input type="radio" name="radioGroup" onclick="foo()"/> <input type="radio" name="radioGroup" onclick="foo()"/> <input type="radio" name="radioGroup" onclick="foo()"/> <input type="radio" name="radioGroup" onclick="foo()"/>
function foo(){ var reg=document.getElementsByName("radioGroup"); //獲取一組有相同名稱的單選框dom對象 for(var i=0;i<reg.length;i++){ if(reg[i].checked){ alert("第"+(i+1)+"單選框"); } } }
3求y和z 的值是多少?正則表達式
var x = 1; var y = 0; var z = 0; function add(n){n=n+1;} y = add(x); //alert(y); function add(n){n=n+3;} z = add(x); //alert(z);
//題目分析,此題的陷阱在於函數都沒有返回值。因此賦值後都是undefined。若給函數都加上return,其結果都將變成4,這是由於後面同名稱的函數會覆蓋前面一個。
4如何獲取表單<select>(下拉列表)域的選擇部分的文本和value值?數組
<select size="1" onchange="sel(this)"> <option value="a">1</option> <option value="b">2</option> <option value="c">3</option> </select>
function sel(obj){ var obj=document.getElementsByTagName("select"); //select下是一個options數組,擁有change事件的還有text和textarea alert("文本爲:"+obj.options[obj.selectedIndex].text); alert("值爲:"+obj.options[obj.selectedIndex].value); }
5javascript怎樣選中一個checkbox,怎樣設置它無效和不能選擇?app
function check(){ var obj=document.getElementsByName("cb1"); for(var i=0;i<obj.length;i++){ obj[i].checked="true";//某一個選中 obj[i].disabled="true";//選擇失效 }
6全選(或者全不選)的全部指定名稱的checkbox dom
function option(state,name){ var obj=document.getElementsByName("name"); for(var i=0;i<obj.length;i++){ obj[i].checked=state; } }
7全選(或者全不選)的全部的checkbox 函數
function selectAll(state){ var obj=document.getElementsByTagName("input"){//獲取全部的input標籤對象 for(var i=0;i<obj.length;i++){ if(obj[i].type="checkbox"){//過濾出咱們須要的checkbox類型 obj[i].checked=state; } } } }
8全選指定值(可能有多個值,以逗號分隔)的checkbox 性能
function select(value,name){ var obj=document.getElementsByName("name"){ var values=value.split(",")//把字符串轉化爲數組 for(var i=0;i<values.length;i++){ for(var j=0;j<obj.length;j++){ if(obj[j].value==values[i]){//對每個指定的值作判斷 obj[j].checked=true; } } } } }
9補充按鈕事件的函數,確認用戶是否退出當前頁面,確認以後關閉窗口;ui
function confirm(){ if(confirm("確認退出?")){ window.close(); } }
10 寫出簡單描述html標籤(不帶屬性的開始標籤和結束標籤)的正則表達式,並將如下字符串中的html標籤去除掉
var str = "<div>這裏是div<p>裏面的段落</p></div>";
function replaceReg(str){ var reg = /<\/?\w+\/?>/gi;//這裏\/是轉義/防止與正則表達式的結束符衝突,後面的問號是可選(起始標籤和結束標籤),後面的可選是匹配單標籤<br/>等。這是個全局匹配,標籤部分大小寫 alert(str.replace(reg,""));//字符串替換函數 }
11將文檔中className有「test」的td標籤背景色設爲黃色
var obj=document.getElementsByTagName("td"); for(var i=0;i<obj.length;i++){ if(obj[i].className.indexOf("test")!=-1){ obj[i].style.backgroundColor="yellow"; } }
12用javascript實現控制一個文本框的輸入字數限制,超出字數限制文本框邊框飄紅顯示
var oInput=document.getElementById("a"); oInput.onkeyup=function(){ this.style.border=this.value.length>5?"1px solid red":""; }
13讓文本輸入框的寬度隨着裏面的內容多少自動伸縮自適應
var oInput = document.getElementById("autoInput"); var sSize = oInput.getAttribute("size"); oInput.onkeydown = function(){ var sInputValue = oInput.value; if(sInputValue === "" || sInputValue.length <= sSize || sInputValue.length > 60){ return; } else{ oInput.setAttribute("size",sInputValue.length); } }
14使用Javascript打印出1-10000之間的全部素數
function sushu(num){ var flag=true; for(var i=2;i<num;i++){ if(num%i==0){ flag=false; break; } } return flag; } var arr=[1] for(var i=3;i<=1000;i++){ var k=sushu(i); if(k){ arr.push(i); } }
15 咱們把一個數字倒着讀和原數字相同的數字稱之爲對稱數,(例如1,121,88,8998),不考慮性能,請找出1—10000之間的對稱數
function duichen(num){ var flag=false; var str=num.toString(); var str1=""; for(var i=str.length-1;i>=0;i--){ str1+=str[i]; } if(str==str1){ flag=true; }else{ flag=false; } return flag; } alert(duichen(121)); var arr=[]; for(var i=1;i<=1000;i++){ var k=duichen(i); if(k){ arr.push(i); } }
16setTimeout調用函數
var obj=function(msg){ this.msg=msg; this.shout=function(){ alert(this.msg); } this.waitAndShout=function(){ //每隔五秒調用上面的shout方法 var self=this; //因爲setTimeout是全局方法,其this指向window,用that保存當前的執行上下文 setTimeout(function(){ self.shout(); },1000) } }
17把字符串轉化爲JSON對象
var str="haha=123&hehe=234&key=456"; var arr=str.split("&"); var obj={}; for(var i=0;i<arr.length;i++){ var arr1=arr[i].split("="); obj[arr1[0]]=arr1[1]; }
18在匿名函數中調用自身,例如實現階乘
var a=(function (num){ if(num==1){ return 1; }else{ return num*arguments.callee(num-1)//調用函數自身 } })(5);
19截取字符串abcdefg的efg
var str="abcdefg"; if(/efg/.test(str)){ var str1=str.slice(str.indexOf("efg")) ; //字符串切割用slice。獲取子字符串在源字符串中的位置用indexOf }
20判斷一個字符串中出現次數最多的字符,統計這個次數
var str="abcdefgacda"; function findMax(str){ var obj={}; for(var i=0;i<str.length;i++){ if(!obj[str[i]]){ obj[str[i]]=1; }else{ obj[str[i]]+=1; } } var max=0; var s; for(var key in obj){ if(obj[key]>max){ max=obj[key]; s=key; } } var str="字符是:"+s+"頻率是:"+max; alert(str); }
21去除數組中的重複元素
function unique(a){ var obj={}; var result=[]; for(var i=0;i<a.length;i++){ if(!obj[a[i]]){ obj[a[i]]=1; result.push(a[i]); } } alert(result); }
22簡單實現js中繼承
function Animal(name){ this.name=name;//共有屬性 } Animal.prototype.getName=function(){ alert(this.name); } function Dog(name,age){ Animal.call(this,name);//繼承屬性 this.age=age;//本身的方法 } Dog.prototype=new Animal(); Dog.prototype.contructor=Dog; Dog.prototype.getAge=function(){ alert(this.age);//本身的方法 } var xiaogou=new Dog("xiao",21); xiaogou.getName(); xiaogou.getAge();
24FF要實現outerHTML還須要特殊處理
function getOutHtml(id){ var el=document.getElementById("id"); var oDiv=document.createElement("div"); var htm=el.cloneNode(true); oDiv.appendChild("htm"); var result=oDiv.innerHTML; document.removeChild("oDiv"); }