尊重作者原創,未經作者允許不得轉載!作者:xtfnpgy,原文地址:
https://www.cnblogs.com/xtfnpgy/p/9285359.html
一.js基礎知識
<!-- -->是HTML的注釋標簽,使用 < 和 > 是符合HTML標簽語法規則的。
//(注釋單行)是JS的注釋標簽
/* */(注釋代碼塊)是CSS的注釋標簽 推薦使用!js凈化以后不影響
回車 \r\n
等於 ==
不等於 !=
賦值 =
或且非 || && !
加減乘除 +-*/
類型轉換 parseInt(str) parseFloat(str) str.toString()
強制類型轉換 Number(str) String(num) (不適合javascript)
字符串長度: str.length
字符串截取: str.substr(1,5)
字符串連接: str1 + str2
字符串替換: str.replace
字符串查找: str.indexOf()
字符串分割: arr = str.split(",")
字符串固定位置值: str.chatAt(0) ,類似s[0]
字符串大小寫: str.toLowerCase str.toUpperCase
Node.childNodes //獲取所有子節點
Node.firstChild //返回第一個子節點
Node.lastChild //返回最后一個子節點
Node.parentNode //返回父節點
Node.previousSibling //返回前一個節點
Node.nextSibling //返回后一個節點
parentNode.removeChild(childNode); //移除節點
parentNode.appendChild(childNode); //追加節點
parentNode.insertBefore(newNode, targetNode) //插入節點
ele.fireEvent('onchange', oEvent); //激活事件
二、登錄例子
var ele_user=document.getElementById('txtUserName');
var ele_pwd=document.getElementByName('txtPassword')[0];
var ele_login=document.getElementByClassName('login')[0];
ele_user.setAttribute('value','admin');
ele_pwd.setAttribute('value','admin');
function ClickElement(AObj) {
AObj.target = '_self';
var e = document.createEvent("MouseEvent"); /*事件名Cef1區分大小寫*/
e.initEvent("click", true, true); /*click必須小寫!*/
AObj.dispatchEvent(e);
} ; /*結尾必須加分號";"*/
ClickElement(ele_login); /*點擊登錄*/
三、獲取元素及屬性
1.getElementById
var ele_user=document.getElementById('txtUserName');
2.getElementsByName
var ele_user=document.getElementsByName('userName')[0]; /*取集合的第一個元素*/
3.getElementsByTagName /*根據元素類型標識元素*/
/*常用Tag:HTML FRAME FORM TABLE TR TD DIV SPAN A INPUT IMG (不區分大小寫)*/
var ele = document.getElementsByTagName('html')[0];
alert(ele.innerHTML);
4.getElementsByClassName /*根據元素class獲取元素*/
var ele = document.getElementsByClassName('form-control')[0];
alert(ele.innerHTML);
四、元素常用屬性
1.可以直接用.操作的
ele.id
ele.name
ele.className /*區分大小寫,源代碼對應class*/
ele.type /*type屬性*/
ele.value /*輸入的值*/
ele.href
ele.innerText /*顯示的文本內容,例如標簽*/
ele.innerHTML
ele.outerHTML
2.其他屬性獲取和設置
style 不能直接.獲取,必須通過getAttribute獲取
ele.getAttribute('onClick'); //不存在返回null
ele.setAttribute('onClick', null);
五、擴展方法
1.JavaScript 遍歷頁面中所有的元素
function GetAllElements(tag)
{
var nodes;
var s;
var temp;
if((tag=="") || (tag==null))
{nodes = document.all;}
else
{nodes = document.getElementsByTagName(tag);}
for(var i=0;i<nodes.length;i++)
{
var o = nodes[i];
temp = i+' id:'+o.id +',name:' + o.name +',tagName:'+ o.tagName ;
if(tag=='A')
{
temp = temp + ',innerText:' + o.innerText+ ',href:' + o.href+"\r\n";
}
else if((tag=='SPAN')||(tag=='DIV'))
{
temp = temp + ',innerText:' + o.innerText+ ',className:' + o.className+"\r\n";
}
else if(tag=='IMG')
{
temp=temp + ',src:' + o.src+"\r\n";
}
else
{
if((o.innerText=="") || (o.innerText==null))
{
if((o.innerHTML=="") || (o.innerHTML==null))
{temp = temp + ',outerHTML:' + o.outerHTML+"\r\n";}
else
{temp = temp + ',innerHTML:' + o.innerHTML+"\r\n"; }
}
else
{temp = temp + ',innerText:' + o.innerText+"\r\n"; }
}
if(temp.length>100)
{ temp = temp.substr(1,100)+"\r\n";}
s = s + temp;
}
alert(s);
};
/*調用:GetAllElements(''); GetAllElements('A'); */
2.JavaScript 遍歷元素所有的屬性
function GetAllAttributes(obj)
{
var s='';
if(obj!=null)
{
for(var i=0; i<obj.attributes.length; i++)
{
s=s+obj.attributes[i].name+':'+obj.attributes[i].value+'\r\n';
}
}
return s;
} ;
調用:
var ele = document.getElementById('login');
alert(GetAllAttributes(ele));
3.JavaScript 遍歷元素所有子節點
function GetAllChilds(obj)
{
var s='';
if(obj!=null)
{
for(var i=0; i<obj.childNodes.length; i++)
{
s=s+obj.childNodes[i].innerHTML+'\r\n';
}
}
return s;
} ;
調用:
var ele = document.getElementByTagName('HTML')[0];
alert(GetAllChilds(ele));
4.根據元素屬性獲取元素
function GetElementByTagProperty(tag,str_property,str_value,bl_exact)
{
var nodes;
var s;
var temp;
var attr;
if((tag=="") || (tag==null))
{nodes = document.all;}
else
{nodes = document.getElementsByTagName(tag);}
for(var i=0;i<nodes.length;i++)
{
if(str_property == 'innerText'){
attr = nodes[i].innerText;} else
if(str_property == 'class'){
attr = nodes[i].className;} else
if(str_property == 'classname'){
attr = nodes[i].className;} else
if(str_property == 'className'){
attr = nodes[i].className;} else {
attr =nodes[i].getAttribute(str_property);}
if(bl_exact)
{
if(attr==str_value)
{
temp=nodes[i];
}
}
else
{
if(attr!=null)
{
if(attr.indexOf(str_value)>-1){temp=nodes[i];}
}
}
}
return temp;
}
調用:
var o=GetElementByTagProperty('A','id','540219887479',false);
5.某寶搜索動態插入勾選框元素:
function AddCheckBoxElement()
{
var nodes;
var ele;
var temp;
nodes = document.getElementsByTagName('A');
var oCheckbox;
for(var i=0;i<nodes.length;i++)
{
if(nodes[i].getAttribute('id')!=null)
{
if(nodes[i].getAttribute('id').indexOf('J_Itemlist_TLink_')>-1)
{
ele = nodes[i];
temp = ele.getAttribute('id');
temp = temp.replace('J_Itemlist_TLink_','');
oCheckbox=document.createElement("input");
oCheckbox.setAttribute("type","checkbox"); /*勾選框*/
oCheckbox.setAttribute("id","chk_" + temp);
oCheckbox.setAttribute("href",ele.href);
ele.parentNode.insertBefore(oCheckbox,ele);
var myText=document.createTextNode("選中"+oCheckbox.id);
ele.parentNode.insertBefore(myText,ele);
oCheckbox.addEventListener('click', function(){
alert(document.activeElement.id + document.activeElement.checked);}, false);
}
}
}
}
AddCheckBoxElement();
六、其他
1.定時器
function doTimer(){ window.location.reload();};
執行一次:
var t1 = window.setTimeout('doTimer()',5000);
執行多次:
var t2 = window.setInterval('doTimer()',5000);
清除定時器:
window.clearInterval(t1);
2.判斷是否IE
function isIE() {
if (!!window.ActiveXObject || "ActiveXObject" in window)
return true;
else
return false;
};
3.點擊勾選框
if(isIE()){oCheckbox.attachEvent("onclick",ClickCheckbox); }
else{
oCheckbox.addEventListener('click',ClickCheckbox, false);}
function ClickCheckbox(){
var evtTarget = event.target || event.srcElement;
evtTarget.focus();
if(document.activeElement.getAttribute("attrChecked")=="true")
{document.activeElement.setAttribute("attrChecked",false) }
else {document.activeElement.setAttribute("attrChecked",true) };
alert('Checked='+document.activeElement.getAttribute("attrChecked")+',href='+
document.activeElement.getAttribute("href")+',');}
尊重作者原創,未經作者允許不得轉載!作者:xtfnpgy,原文地址:
https://www.cnblogs.com/xtfnpgy/p/9285359.html