二維碼
字符串太長沒辦法識(shí)別茂契,選擇了使用較短的字符串(與后臺(tái)協(xié)商解決)
輸入框——v-model
問題:v-model綁定的輸入框,輸入框中的值改變了慨绳,數(shù)據(jù)并沒有得到相應(yīng)掉冶。
解決:1.利用原生js操作手動(dòng)改變值2.使用v-model.lazy
修飾符.lazy,轉(zhuǎn)變成在change事件中同步(在默認(rèn)情況下真竖,v-model在input事件中同步輸入框的值與數(shù)據(jù) )
<!-- 在 "change" 而不是 "input" 事件中更新 -->
<input v-model.lazy="msg" >
forEach
第一次在項(xiàng)目中使用forEach,感覺挺好用的厌小。
forEach方法中的function回調(diào)有三個(gè)參數(shù):第一個(gè)參數(shù)是遍歷的數(shù)組內(nèi)容恢共,第二個(gè)參數(shù)是對應(yīng)的數(shù)組索引,第三個(gè)參數(shù)是數(shù)組本身.
each和map的使用方法類似(下次可以嘗試新的用法)
comData.materials.forEach(function(value,index){
var accepNums = document.getElementsByClassName('accepNum');
comData.materials[index].shipmentqty = accepNums[index].value;
});
獲得input中的value值方法
原生js:
var obj = document.getElementById("test");
var test = obj.value;
jQuery方法
$("#text").val();
$("input[name = 'test']").val();
$("input[type = 'text']").val();
$("input[type = 'text']").attr(value);
querySelector與querySelectorAll的總結(jié)
- querySelector返回的值為滿足條件的是第一個(gè)元素(node)璧亚,而querySelectorAll()返回的是所有的元素(nodelist)
- 在沒有滿足的情況下讨韭,querySelector返回null,querySelectorAll返回的是空的數(shù)組
獲取頁面ID為test的元素:
document.getElementById("test");
//or
document.querySelector("#test");
document.querySelectorAll("#test")[0];
獲取頁面class屬性為”red”的元素:
document.getElementsByClassName('red')
//or
document.querySelector('.red')
//or
document.querySelectorAll('.red')
使用原生js動(dòng)態(tài)設(shè)置CSS
一開始先設(shè)置為hidden
var app = document.getElementById('app');
app.style.visibility = "hidden";
加載完成后設(shè)置為visible
var app = document.getElementById('app');
app.style.visibility = "visible";
Object.style.visibility=visible|hidden|collapse
vue基礎(chǔ)總結(jié)
關(guān)于異步
公司封裝好的請求能否避開異步請求導(dǎo)致的錯(cuò)誤
js獲取節(jié)點(diǎn) dom操作
常用方法總結(jié):
createAttribute() //用指定的名字創(chuàng)建新的Attribute節(jié)點(diǎn)
createElement()//用制定的標(biāo)記名稱創(chuàng)建新的element節(jié)點(diǎn)
屬性:
childNodes//以Node[]的形式存放當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)癣蟋。如果沒有子節(jié)點(diǎn)透硝,則返回空數(shù)組。
firstChild//以Node的形式返回當(dāng)前節(jié)點(diǎn)的第一個(gè)子節(jié)點(diǎn)疯搅。如果沒有子節(jié)點(diǎn)濒生,則為null。
lastChild//
以Node的形式返回當(dāng)前節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)秉撇。如果沒有子節(jié)點(diǎn)甜攀,則為null。
nextSibling//以Node的形式返回當(dāng)前節(jié)點(diǎn)的兄弟下一個(gè)節(jié)點(diǎn)琐馆。如果沒有這樣的節(jié)點(diǎn)规阀,則返回null。下一個(gè)兄弟節(jié)點(diǎn)
previousSibling//上一個(gè)兄弟節(jié)點(diǎn)
parentNode//父節(jié)點(diǎn)
方法:
appendChild()//通過把一個(gè)節(jié)點(diǎn)增加到當(dāng)前節(jié)點(diǎn)的childNodes[]組瘦麸,給文檔樹增加節(jié)點(diǎn)谁撼。
hasChildNodes()//如果當(dāng)前節(jié)點(diǎn)擁有子節(jié)點(diǎn),則將返回true滋饲。
insertBefore()//給文檔樹插入一個(gè)節(jié)點(diǎn)厉碟,位置在當(dāng)前節(jié)點(diǎn)的指定子節(jié)點(diǎn)之前。如果該節(jié)點(diǎn)已經(jīng)存在屠缭,則刪除之再插入到它的位置箍鼓。
removeChild()// 從文檔樹中刪除并返回指定的子節(jié)點(diǎn)。
replaceChild()// 從文檔樹中刪除并返回指定的子節(jié)點(diǎn)呵曹,用另一個(gè)節(jié)點(diǎn)替換它款咖。
空的object
JavaScript如何判斷一個(gè)對象{}是否為空對象,沒有任何屬性
var a = {};
if(!a){ console.log(1);}
else if(a == null) { console.log(2);}
else { console.log(3);}//3
var b = {};
if(b == {}){ console.log(4);}
if(b == '{}') { console.log(5);}
if(typeof(b) == 'object') { console.log(6);}//6
判斷方法:JSON.stringify()
var c = {};
if(JSON.stringify(c) == "{}"){ console.log(7);}
var c = {};
if(JSON.stringify(c) == "{}"){ console.log(7);}
關(guān)于html5+
html5+是hbulider利用自己的IDE結(jié)合不同平臺(tái)的接口再加上html5的東西開發(fā)出來的一套框架奄喂,它有自己的使用規(guī)范铐殃,它允許和提供了一些接口和函數(shù)來讓web開發(fā)者實(shí)現(xiàn)原聲app所能實(shí)現(xiàn)的功能