❶ 用js如何實現點擊加或減 其數值做相應的改變
通過this的父節點兄弟節點等方式操作如果對內class進行操作就會同時變化容
<spanclass="add">+</span><spanclass="num1">1</span><spanclass="sub">-</span><br>
<spanclass="add">+</span><spanclass="num2">2</span><spanclass="sub">-</span>
<script>
varadd=document.getElementsByClassName('add');
varsub=document.getElementsByClassName('sub');
for(vari=0;i<add.length;i++){
add[i].onclick=function(){
this.nextElementSibling.innerHTML++;
}
sub[i].onclick=function(){
this.previousElementSibling.innerHTML--;
}
}
</script>
❷ 只用js如何實現表格內容的動態修改
<body>
<tableid='test'>//定義一個table
<tr>
<td></td><td></td>
</tr>
</table>
<script>
vartb=document.getElementById('test');//獲取表格的dom節點
vartd=tb.rows[0].cells[0];//獲取0行0列的td單元格
td.innerHTML='222';//動態修改表格的內容為222
</script>
</body>
思路:
1、獲取表格的dom節點
2、通過rows和cells定位td單元格
3、通過修改innerHTML
JS實現動態表格的新增,修改,刪除操作
一、相關JS函數
function setParamslist() {
var tab = document.getElementById("tab");
//表格行數
var rows = tab.rows.length ;
//表格列數
var cells = tab.rows.item(0).cells.length ;
//alert("行數"+rows+"列數"+cells);
var rowData = "";
for(var i=1;i<rows;i++) {
var cellsData = new Array();
for(var j=0;j<cells-1;j++) {
cellsData.push(tab.rows[i].cells[j].innerText);
}
rowData = rowData + "|" + cellsData;
}
document.getElementById("paramslist").value = rowData;
}
//打開相關新增應用參數界面
function openAppParamsPage() {
var param = new Object();
//這個參數一定要傳。
param.win = window;
param.id = 100;
param.name = "test";
param.birthday = new Date();
var result = window.showModalDialog("addParamsItem","dialogWidth:500px;dialogHeight:600px;dialogLeft:200px;dialogTop=200px");
//var temp = document.getElementById("paramslist").value;
//document.getElementById("paramslist").value = temp + result;
addSort(result);
}
// 增加應用參數函數
function addSort(data) {
var name = data;
if(name == ""||name==undefined ) {
return;
}
console.log(data);
var params = data.split(",");
var paramName = params[0];
var paramCode = params[1];
var paramValue = params[2];
var row = document.createElement("tr");
row.setAttribute("id", paramCode);
var cell = document.createElement("td");
cell.appendChild(document.createTextNode(paramName));
row.appendChild(cell);
cell = document.createElement("td");
cell.appendChild(document.createTextNode(paramCode));
row.appendChild(cell);
cell = document.createElement("td");
cell.appendChild(document.createTextNode(paramValue));
row.appendChild(cell);
var deleteButton = document.createElement("input");
deleteButton.setAttribute("type", "button");
deleteButton.setAttribute("value", "刪除");
deleteButton.onclick = function () { deleteSort(paramCode); };
cell = document.createElement("td");
cell.appendChild(deleteButton);
row.appendChild(cell);
document.getElementById("sortList").appendChild(row);
}
// 刪除應用參數函數
function deleteSort(id) {
if (id!=null){
var rowToDelete = document.getElementById(id);
var sortList = document.getElementById("sortList");
sortList.removeChild(rowToDelete);
}
}
二、彈出框頁面,新增或者修改參數,並回寫相關數據。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>新增應用</title>
<#include "/views/head.html"/>
</head>
<body>
<div class="body-box">
<div class="clear"></div>
<form >
<table width="100%" cellspacing="1" cellpadding="2" border="0"class="pn-ftable">
<tr>
<td>參數名稱:</td>
<td class="pn-fcontent"><input type="text" maxlength="20" class="" required="true" id="paramName" name="paramName"/></td>
</tr>
<tr>
<td>參數編碼:</td>
<td class="pn-fcontent"><input type="text" maxlength="20" class="" required="true" id="paramCode" name="paramCode" required="true" /></td>
</tr>
<tr>
<td>參數值:</td>
<td class="pn-fcontent"><input type="text" maxlength="20" class="" required="true" id="paramValue" name="paramValue" required="true" /></td>
</tr>
<tr>
<td align="center" colspan="4">
<input type="submit" value="保存" onclick="returnResult();"/>
<input type="button" value="返回" onclick="closeWindow();"/>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
<script type="text/javascript">
//直接關閉窗口
function closeWindow() {
window.close();
}
//獲取值,組裝後返回
function returnResult() {
if(!$('form').valid())
return;
var paramName = document.getElementById("paramName");
var paramCode = document.getElementById("paramCode");
var paramValue = document.getElementById("paramValue");
//alert("value is " + paramName.value + "," + paramCode.value + "," + paramValue.value);
var result = paramName.value + "," + paramCode.value + "," + paramValue.value;
window.returnValue = result;
window.close();
}
</script>
❸ js表格修改數據
點擊修改按鈕,找到對應行的數據,
然後寫一個窗口,將數據載入進去,修改後將數據寫回到表格中。
❹ JS Array(數組)所有操作方法,改變數組方法、不改變數組方法
定義:返回由所有參數值組成的數組,如果沒有參數,就返回一個空數組。
目的:Array.of() 出現的目的是為了解決上述構造器因參數個數不同,導致的行為有差異的問題。
參數:
第一個參數(必需):要轉化為真正數組的對象。
第二個參數(可選): 類似數組的map方法,對每個元素進行處理,將處理後的值放入返回的數組。
第三個參數(可選): 用來綁定this。
ps:splice方法從數組中添加/刪除項目,然後返回被刪除的項目
語法: array.splice(index,howmany,item1,.....,itemX)
參數:
index:必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。
howmany:必需。要刪除的項目數量。如果設置為 0,則不會刪除項目。
item1, …, itemX: 可選。向數組添加的新項目。
返回值: 如果有元素被刪除,返回包含被刪除項目的新數組。
刪除元素
刪除並添加
不刪除只添加
ps:方法接受兩個參數,一個從哪裡開始,一個是到哪裡結束(但是不包括這個結束的元素本身)。如果是負數,就從倒數第幾個。
參數可選: 規定排序順序的比較 函數 。
默認情況下sort()方法沒有傳比較函數的話,默認按字母升序,如果不是元素不是字元串的話,會調用toString()方法將元素轉化為字元串的Unicode(萬國碼)位點,然後再比較字元。
比較函數的兩個參數
sort的比較函數有兩個默認參數,要在函數中接收這兩個參數,這兩個參數是數組中兩個要比較的元素,通常我們用 a 和 b 接收兩個將要比較的元素:
sort排序常見用法
數組元素為數字的升序、降序:
數組多條件排序
自定義比較函數
定義: 在當前數組內部,將指定位置的成員復制到其他位置,並返回這個數組。
語法: array.Within(target, start = 0, end = this.length)
參數:
三個參數都是數值,如果不是,會自動轉為數值.
target(必需):從該位置開始替換數據。如果為負值,表示倒數。
start(可選):從該位置開始讀取數據,默認為 0。如果為負值,表示倒數。
end(可選):到該位置前停止讀取數據,默認等於數組長度。使用負數可從數組結尾處規定位置。
瀏覽器兼容(MDN): chrome 45,Edge 12,Firefox32,Opera 32,Safari 9, IE 不支持
從上述例子:
第一個參數是開始被替換的元素位置
要替換數據的位置范圍:從第二個參數是開始讀取的元素,在第三個參數前面一個元素停止讀取
數組的長度不會改變
讀了幾個元素就從開始被替換的地方替換幾個元素
參數:
第一個元素(必須): 要填充數組的值
第二個元素(可選): 填充的開始位置,默認值為0
第三個元素(可選):填充的結束位置,默認是為this.length
使用join方法或者下文說到的toString方法時,當數組中的元素也是數組或者是對象時會出現什麼情況?
join()/toString()方法在數組元素是數組的時候,會將裡面的數組也調用join()/toString(),如果是對象的話,對象會被轉為[object Object]字元串。
如上述栗子:調用數組的toLocaleString方法,數組中的每個元素都會調用自身的toLocaleString方法,對象調用對象的toLocaleString,Date調用Date的toLocaleString。
該方法的效果和join方法一樣,都是用於數組轉字元串的,但是與join方法相比沒有優勢,也不能自定義字元串的分隔符,因此不推薦使用。
ps:當數組和字元串操作的時候,js 會調用這個方法將數組自動轉換成字元串
ps:字元串也有一個slice() 方法是用來提取字元串的,不要弄混了。
參數:
begin(可選): 索引數值,接受負值,從該索引處開始提取原數組中的元素,默認值為0。
end(可選):索引數值(不包括),接受負值,在該索引處前結束提取原數組元素,默認值為數組末尾(包括最後一個元素)。
如上:新數組是淺拷貝的,元素是簡單數據類型,改變之後不會互相干擾。
如果是復雜數據類型(對象,數組)的話,改變其中一個,另外一個也會改變
原因在定義上面說過了的:slice()是淺拷貝,對於復雜的數據類型淺拷貝,拷貝的只是指向原數組的指針,所以無論改變原數組,還是淺拷貝的數組,都是改變原數組的數據。
ES6擴展運算符...合並數組:
因為ES6的語法更簡潔易懂,所以現在合並數組我大部分採用...來處理,...運算符可以實現cancat的每個栗子,且更簡潔和具有高度自定義數組元素位置的效果。
參數:
searchElement(必須):被查找的元素
fromIndex(可選):開始查找的位置(不能大於等於數組的長度,返回-1),接受負值,默認值為0。
嚴格相等的搜索:
數組的indexOf搜索跟字元串的indexOf不一樣,數組的indexOf使用嚴格相等===搜索元素,即數組元素要完全匹配才能搜索成功。
注意:indexOf()不能識別NaN
參數:
searchElement(必須): 被查找的元素
fromIndex(可選): 逆向查找開始位置,默認值數組的長度-1,即查找整個數組。
關於fromIndex有三個規則:
正值。如果該值大於或等於數組的長度,則整個數組會被查找。
負值。將其視為從數組末尾向前的偏移。(比如-2,從數組最後第二個元素開始往前查找)
負值。其絕對值大於數組長度,則方法返回 -1,即數組不會被查找。
參數:
searchElement(必須):被查找的元素
fromIndex(可選):默認值為0,參數表示搜索的起始位置,接受負值。正值超過數組長度,數組不會被搜索,返回false。負值絕對值超過長數組度,重置從0開始搜索。
includes方法是為了彌補indexOf方法的缺陷而出現的:
indexOf方法不能識別NaN
indexOf方法檢查是否包含某個值不夠語義化,需要判斷是否不等於-1,表達不夠直觀
❺ 只用js如何實現表格內容的動態修改
<body>
<tableid='test'>//定義一個table
<tr>
<td></td><td></td>
</tr>
</table>
<script>
vartb=document.getElementById('test');//獲取表格的dom節點
vartd=tb.rows[0].cells[0];//獲取0行0列的td單元格
td.innerHTML='222';//動態修改表格的內容為222
</script>
</body>
思路:
1、獲取表格的dom節點
2、通過rows和cells定位td單元格
3、通過修改innerHTML
JS實現動態表格的新增,修改,刪除操作
一、相關JS函數
function setParamslist() {
var tab = document.getElementById("tab");
//表格行數
var rows = tab.rows.length ;
//表格列數
var cells = tab.rows.item(0).cells.length ;
//alert("行數"+rows+"列數"+cells);
var rowData = "";
for(var i=1;i<rows;i++) {
var cellsData = new Array();
for(var j=0;j<cells-1;j++) {
cellsData.push(tab.rows[i].cells[j].innerText);
}
rowData = rowData + "|" + cellsData;
}
document.getElementById("paramslist").value = rowData;
}
//打開相關新增應用參數界面
function openAppParamsPage() {
var param = new Object();
//這個參數一定要傳。
param.win = window;
param.id = 100;
param.name = "test";
param.birthday = new Date();
var result = window.showModalDialog("addParamsItem","dialogWidth:500px;dialogHeight:600px;dialogLeft:200px;dialogTop=200px");
//var temp = document.getElementById("paramslist").value;
//document.getElementById("paramslist").value = temp + result;
addSort(result);
}
// 增加應用參數函數
function addSort(data) {
var name = data;
if(name == ""||name==undefined ) {
return;
}
console.log(data);
var params = data.split(",");
var paramName = params[0];
var paramCode = params[1];
var paramValue = params[2];
var row = document.createElement("tr");
row.setAttribute("id", paramCode);
var cell = document.createElement("td");
cell.appendChild(document.createTextNode(paramName));
row.appendChild(cell);
cell = document.createElement("td");
cell.appendChild(document.createTextNode(paramCode));
row.appendChild(cell);
cell = document.createElement("td");
cell.appendChild(document.createTextNode(paramValue));
row.appendChild(cell);
var deleteButton = document.createElement("input");
deleteButton.setAttribute("type", "button");
deleteButton.setAttribute("value", "刪除");
deleteButton.onclick = function () { deleteSort(paramCode); };
cell = document.createElement("td");
cell.appendChild(deleteButton);
row.appendChild(cell);
document.getElementById("sortList").appendChild(row);
}
// 刪除應用參數函數
function deleteSort(id) {
if (id!=null){
var rowToDelete = document.getElementById(id);
var sortList = document.getElementById("sortList");
sortList.removeChild(rowToDelete);
}
}
二、彈出框頁面,新增或者修改參數,並回寫相關數據。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>新增應用</title>
<#include "/views/head.html"/>
</head>
<body>
<div class="body-box">
<div class="clear"></div>
<form >
<table width="100%" cellspacing="1" cellpadding="2" border="0" class="pn-ftable">
<tr>
<td>參數名稱:</td>
<td class="pn-fcontent"><input type="text" maxlength="20" class="" required="true" id="paramName" name="paramName"/></td>
</tr>
<tr>
<td>參數編碼:</td>
<td class="pn-fcontent"><input type="text" maxlength="20" class="" required="true" id="paramCode" name="paramCode" required="true" /></td>
</tr>
<tr>
<td>參數值:</td>
<td class="pn-fcontent"><input type="text" maxlength="20" class="" required="true" id="paramValue" name="paramValue" required="true" /></td>
</tr>
<tr>
<td align="center" colspan="4">
<input type="submit" value="保存" onclick="returnResult();"/>
<input type="button" value="返回" onclick="closeWindow();"/>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
<script type="text/javascript">
//直接關閉窗口
function closeWindow() {
window.close();
}
//獲取值,組裝後返回
function returnResult() {
if(!$('form').valid())
return;
var paramName = document.getElementById("paramName");
var paramCode = document.getElementById("paramCode");
var paramValue = document.getElementById("paramValue");
//alert("value is " + paramName.value + "," + paramCode.value + "," + paramValue.value);
var result = paramName.value + "," + paramCode.value + "," + paramValue.value;
window.returnValue = result;
window.close();
}
</script>
❻ 如何在javascript 二維數組中添加數據刪除修改數據
JavaScript中,由於數組長度是可變的,因此可以通過直接定義新的成員而將其添加到數組中:
var o = [2,3,5];
o[3] = 7;
console.log(o);//[2,3,5,7]
除了這種方法,還可以通過使用push()語句來達到相同的目的:
o.push(11);
console.log(o);//[2,3,5,7,11]
o.push(13,17);
console.log(o);//[2,3,5,7,11,13,17]
如果需要在數組開頭添加新的成員,可以使用unshift()語句:
o.unshift(2014);
console.log(o);//[2014,2,3,5,7,11,13,17]
o.unshift(2013, 2012);
console.log(o);//[2013,2012,2014, 2,3,5,7,11,13,17]
與push()對應,如果需要從數組末尾刪除一個成員,可以使用pop()語句,pop()語句將返回這個被刪除的成員,而數組長度將減少1:
var p = o.pop();
console.log(p);//17
console.log(o.length);//9
與unshift()對應,如果需要從數組開頭刪除一個成員,可以使用shift()語句,shift()語句將返回這個世困被刪除的成員,而數組長度將減少1:
var s = o.shift();
console.log(s);//2013
console.log(o.length);//8
除了shift()語句和pop()語句,還可以通過delete操作符來刪除數組中的成員。與shift()和pop()不同的是,delete操作後數組的length屬性將保持不變,也即數組將變得不連續。
JavaScript中還可以通過設定數組的length屬性來對數組進行修臘埋改:當length值小於數組成員數時,JavaScript將對數組進行截取;當length值大於數組成輪返螞員數時,JavaScript會將數組變得不連續。如果length值只讀,那麼在數組中直接定義新成員的操作將會失敗:
console.log(o);//[2012,2014, 2,3,5,7,11,13]
o.length = 2;
console.log(o);//[2012,2014]
o.length = 4;
console.log(o);//[2012,2014,undefined,undefined]
var a = [1,2,3];
Object.defineProperty(a, "length", {writable:false});
a[3] = 4;
console.log(a);//[1,2,3]