十一天

导航

DOM节点(二)

全文手打,转载请注明出处

一)节点属性操作

①获取属性值

  ★DOM节点.属性名            //不能获取用户自定义的属性

  ★DOM节点.getAttribute(属性名)    //万能

②设计属性值

  ★DOM节点.属性名 = 属性值

  ★DOM节点.setAttribute(属性名,属性值)    

③删除属性值

  ★DOM节点.属性名 = ' '    //空字符串

  ★DOM节点.removeAttribute(属性名)

<button id = "btn">切换图片</button>
<img src = "images/bg1.jpg" data-src = "images/bg2.jpg" alt = "图片" />  //有data-是用户自定义属性
<img  data-src = "images/bg2.jpg" alt = "图片" />  //没有src图片出不来

<script>
//①获取属性值
//  ★DOM节点.属性名            //不能获取用户自定义的属性
//  ★DOM节点.getAttribute(属性名)    //万能,1次只能拿1个属性
//获取图片
var img = document.getElementsByTagName('img');
console.log(img[0].src);      //获取的是图片的完整路径,拿到浏览器中可以打开
console.log(img[0].alt); 
console.log(img[0].data-src);    //用户自定义属性报错
console.log(img[0].data);    //undefined
console.log(img[0].getAttribute(src)); 
console.log(img[0].getAttribute(data-src));   //可以


//②设计属性值
//  ★DOM节点.属性名 = 属性值
//  ★DOM节点.setAttribute(属性名,属性值)  
img[1].src = 'images/bg1.jpg';
img[1].data-src = 'images/bg1.jpg';     //报错
document.getElementsById('btn').onclick = function(){
  alert();   //测试好用不
  var url = img[0].getAttribute('data-src');
  img[0].setAttribute('src',url)
}


//③删除属性值
//  ★DOM节点.属性名 = ' '    //空字符串
//  ★DOM节点.removeAttribute(属性名) 
img[1].src = ' '
img[1].removeAttribute('src')


</script>

 

二)节点文本操作

①获取文本内容

  ★节点.innerHTML       //获取节点下的所有内容,包括标签

  ★节点.innerText      //获取节点下的文本内容,过滤掉标签

  ★节点.value            //获取input输入框等表单控件的内容

  ★节点.getAttribute("value")            //value是表单输入框的属性,可用getAttribute获得value值

②设计文本内容

  ★节点.innerHTML = "文本内容"       //会翻译html标签

  ★节点.innerText= "文本内容"      //不会翻译html标签

  ★节点.value = 值            //获取input输入框等表单控件的内容

  ★节点.setAttribute("value",值)            //value是表单输入框的属性,可用setAttribute设置value值

③删除文本内容

  ★节点.innerHTML = " "       

  ★节点.innerText= " "      

  ★节点.value = " "

  ★节点.removeAttribute("value")      

<button id = "btn"><span>这是</span>切换图片</button>
<img src = "images/bg1.jpg"  data-src = "images/bg2.jpg" alt = "图片" />
<img data-src = "images/bg2.jpg" alt = "图片" />
<form>
    <input type = "text" name = "txt" value = "这是表单文本框的内容"><br>
    <input type = "radio" name = "sex" value = "1"><input type = "radio" name = "sex" value = "2">女<br>

    <input type = "checkbox" name = "hobby" value = "睡觉觉">睡觉觉
    <input type = "checkbox" name = "hobby" value = "恰饭饭">恰饭饭
    <input type = "checkbox" name = "hobby" value = "游戏戏">游戏戏<br>

    <input type = "button" id = "ok" value = "提交">
</form>

<script>
// ①获取文本内容
//  ★节点.innerHTML       //获取节点下的所有内容,包括标签(必须双标签)<></>
console.log(document.getElementById('btn').innerHTML);    //返回button中间的所有<span>这是</span>切换图片

//  ★节点.innerText      //获取节点下的文本内容,过滤掉标签
console.log(document.getElementById('btn').innerText);    //文本内容,这是切换图片

//  ★节点.value            //获取input输入框等表单控件的内容
console.log(document.getElementByName('txt')[0].value);    //表单
console.log(document.forms[0].txt.value);                       //把input放到form标签里,第二种写法
console.log(document.querySelector('input').value);             //第三种写法
document.forms[0].txt.onblur = function (){        //onblur:事件(失焦时触发该事件)注册登录时,失焦用于检测合法不
    console.log(document.forms[0].txt.value);
    console.log(this.value);                                    //简写,this代表当前的DOM对象
    if(this.value == 'aaa'){
        alert('登陆成功!');
        location.href = 'https://baidu.com'         //location.href用于动态跳转,a标签是静态跳转
    } else{
        alert('账号不正确!');
    }
}

//  ★节点.getAttribute("value")            //value是表单输入框的属性,可用getAttribute获得value值
console.log(document.forms[0].txt.getAttribute("value");    //只能获取标签属性的值,不能获取标签的文本内容

// ②设计文本内容 // ★节点.innerHTML = "文本内容" //会翻译html标签 document.getElementById('btn').innerHTML = "aaa"; //修改为aaa document.getElementById('btn').innerHTML = "这是一个<strong>aaa</strong>"; //修改为这是一个粗aaa粗,会自动解析标签 // ★节点.innerText= "文本内容" //不会翻译html标签 document.getElementById('btn').innerTest = "aaa"; //只是文本时,和上面用法相同 document.getElementById('btn').innerTest = "这是一个<strong>aaa</strong>"; //不会自动解析标签 // ★节点.value = 值 //获取input输入框等表单控件的内容 document.forms[0].sex.value = 1; //默认radio选中1 document.forms[0].hobby.value = '恰饭饭'; //不能通过value设置默认checkbox选项 document.forms[0].hobby[1].checked = true; //第2项被选中 document.forms[0].hobby[1].checked = false; //第2项取消被选中 document.querySelector('#ok').onclick = function() { //单击”提交“按钮获取所有复选框被选中的内容 var chks = document.forms[0].hobby; //获取所有复选框DOM var arr = []; for (var i in chks) { if(chks[i].checked){ //如果被选中 arr.push(chks[i].value); //获取值 } } } // ★节点.setAttribute("value",值) //value是表单输入框的属性,可用setAttribute设置value值 document.forms[0].hobby[0].setAttribute('checked',true); document.forms[0].hobby[0].setAttribute('checked',haha); //'checked'后面给什么值都选中 document.forms[0].hobby[0].setAttribute('value','1');
// ③删除文本内容 // ★节点.innerHTML = " " document.getElementById('btn').innerHTML = " " // ★节点.innerText= " " document.getElementById('btn').innerText= " " // ★节点.value = " " document.forms[0].hobby[0].value = " "; // ★节点.removeAttribute("value") document.forms[0].hobby[0].removeAttribute('value'); </script>

 

三)DOM节点样式操作

①获取样式class

  ★节点.className       //获取节点下的所有class

  ★节点.getAttribute("class")     //获取节点下的所有class

②设计样式class

  ★节点.className = 值       

  ★节点.setAttribute("class",值)  

③其他样式class

  ★节点.classList.add(value)       //为元素添加指定的类

  ★节点.classList.contains(value)       //判断元素是否含有指定的类,如果存在返回true

  ★节点.classList.remove(value)       //删除指定的类

  ★节点.classList.toggle(value)       //有就删除,没有就添加指定的类

<style>
.p-style{
    color:red;
    background-color:gray;
    font-size:30px;
    font-weight:bold;
}
.demo{
    border:1px solid #00f
}
</style>

<p class = "test p-style">测试文本</p>
<p class = "test">测试文本</p>

<script>
//①获取样式class
//  ★节点.className       //获取节点下的所有class
console.log(document.getElementsByClassName('test')[0].className);

//  ★节点.getAttribute("class")     //获取节点下的所有class
console.log(document.querySelector('.test').getAttribute.("class"));


//②设计样式class
//  ★节点.className = 值       
document.getElementsByTagName('p')[1].className = 'p-style';
document.getElementsByClassName('test')[1].className = 'p-style';

//  ★节点.setAttribute("class",值)      
document.getElementsByTagName('p')[1].setAttribute("class","p-style");
document.getElementsByTagName('p')[1].setAttribute("class","demo test p-style");


//③其他样式class
//  ★节点.classList.add(value)       //为元素添加指定的类
document.getElementsByTagName('p')[1].classList.add("aaa"); 

//  ★节点.classList.contains(value)       //判断元素是否含有指定的类,如果存在返回true
// var hs = document.getElementsByTagName('p')[1];
if(document.getElementsByTagName('p')[1].classList.contains("p-style")){
    document.getElementsByTagName('p')[1].classList.remove("p-style")    //有就删除
} else{
    document.getElementsByTagName('p')[1].classList.add("p-style");   //无就添加
}

//  ★节点.classList.remove(value)       //删除指定的类

//  ★节点.classList.toggle(value)       //有就删除,没有就添加指定的类
var dom = document.getElementsByTagName('p')[1];
dom.onclick = function(){
    dom.classList.toggle("p-style");          //切换样式
}

</script>

 

四)DOM操作内联样式

①获取样式class

  ★节点.style.样式属性名    //获取某个具体的内联样式

  ★节点.style.cssText          //获取某个节点所有的内联样式,返回字符串

②设计样式class

 

  ★节点.style.样式属性名 = 属性值                          //设置某个具体的内联样式

  ★节点.style.cssText = 属性值或属性值列表          //设置某个节点所有的内联样式

<p style = "color:red;">测试文本1</p>
<p style = "color:blue;font-size:28px;">测试文本2</p>

<script>
var pDom = document.querySelectorAll('p');
//①获取样式class
//  ★节点.style.样式属性名    //获取某个具体的内联样式
console.log(pDom[0].style.color);           //red
console.log(pDom[1].style.fontSize);        //28px

//  ★节点.style.cssText          //获取某个节点所有的内联样式,返回字符串
console.log(pDom[0].style.cssText);      //color:red;
console.log(pDom[1].style.cssText);      //color:blue;font-size:28px;
//将cssText返回的字符串转换为对象
var str = pDom[1].style.cssText,arr = [],cssObj = {};
arr = str.split(';');         //以;进行拆分,变成数组
for(var i in arr){
    var newArr = null;
    newArr = arr[i].split(': ');        //以: 进行拆分
    cssObj[newArr[0]] = newArr[1];      //数组转化为对象
}


//②设计样式class
//  ★节点.style.样式属性名 = 属性值                   //设置某个具体的内联样式
pDom[0].style.color = 'pink';
pDom[1].style.fontSize = '10px';

//  ★节点.style.cssText = 属性值或属性值列表          //设置某个节点所有的内联样式
document.querySelector('div').style.cssText = 'color:red;background-color:blue';

</script>

全文手打,转载请注明出处!  

全文手打,转载请注明出处!

全文手打,转载请注明出处!

posted on 2020-08-28 17:30  十一天  阅读(103)  评论(0编辑  收藏  举报