1. js裡面怎麼動態的為對象添加屬性
添加屬性用setAttribute()方法,可以傳入兩個參數,第一個是屬性名稱,第二個是要設置的屬性值
varli=document.getElementsByTagName('li')[0];
//設置li屬性,如data-falg,設置為true
li.setAttribute("data-falg","true");
也可以獲取屬性用getAttribute(),傳入一個參數,是想獲取的屬性名稱,返回的是該屬性的值
2. javascript 動態變數名(傳入一個對象,利用這個對象給標簽添加css樣式)
修改後的代碼:
function addcss(css) {
var div = document.createElement("div");
for (var i in css) {
div.style.cssText += i+":"+css[i];
}
document.body.appendChild(div);
}
你的代碼存在以下問題:
1、創建元素的方法是createElement(),而不是create()
2、元素創建以後沒有附加到已有節點上
3、i不是style的屬性
3. 關於js中一個對象當做參數傳遞是按值傳遞還是按引用傳遞的個人看法
是傳值的,對象類型的值其實是個內存地址,比如你家的地址,你告訴人家你家地址是xx路xx號,別人就根據這個地址找到你家的位置,所以說xx路xx號就是一個對象類型的值,不管這個值復制多少遍,他所指向的都是同一個地方,也就都會找到那個地方的唯一一個對象
這就是對象類型的值是地址而不是真正對象本身
4. javascript(js)傳對象
說明:
1、window.location可簡寫為location.
2、getSearchAsArray方法為解析location字串。即將字元串傳遞的名-值對(按傳統的name1=value1&name2=value2)轉換到一個索引名是名字的數組。
參數為window.location字串。
其中escape()函數將數據轉換成url適用的格式,特別是當內容包含空格時。
網上還有另一種方法來解析location,即正則表達式,大家有興趣可以搜索一下。
3、location具體可以容納的字串長度,是否和地址欄的長度相同,有興趣的朋友可以測一下。
//======================以下是頁面源碼=======================
第一個頁面index.html代碼如下:
<HTML>
<HEAD>
<TITLE> window.search test </TITLE>
</HEAD>
<BODY>
<INPUT TYPE="button" onClick="doclick()">
<SCRIPT LANGUAGE="JavaScript">
<!--
function doclick()
{
location="test.html?a=1&b=2&c=3";
}
//-->
</SCRIPT>
</BODY>
</HTML>
第二個頁面test.html
<HTML>
<HEAD>
<TITLE> test.html </TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var srchStr=location.search;
load();
function load()
{
if(srchStr)
{
var srchArray=getSearchAsArray(srchStr);
alert(srchArray["a"]);
alert(srchArray["b"]);
alert(srchArray["c"]);
}
}
function getSearchAsArray(srchStr)
{
var results=new Array();
var input=unescape(srchStr.substr(1));
if(input)
{
var srchArray=input.split("&");
var tempArray=new Array();
for(var i=0;i<srchArray.length;i++)
{
tempArray=srchArray[i].split("=");
results[tempArray[0]]=tempArray[1];
}
}
return results;
}
//-->
</SCRIPT>
</BODY>
</HTML>
這是接收普通參數,數組應該差不多,只是思想,你看看吧
5. JS中怎麼將多個對象添加到一個對象中
這個只能用集合來實現。
在JavaScript中,常用Array來存儲和操作對象:
Array:
新建:var ary = new Array(); 或 var ary = [];
增加:ary.push(value);
刪除:delete ary[n];
遍歷:for ( var i=0 ; i < ary.length ; ++i ) ary[i];
6. JS 如何傳遞對象參數
<html>
<head></head>
<script>
function check(val)
{
alert(document.getElementById(val).value);
}
</script>
</head>
<body>
<input name="textfield" type="text" value="888" id="test">
</body>
<script>
check("test");
</script>
</html>
這樣是可以的,你那樣在還沒有運行到<input name="textfield" type="text" value="888" id="test"> 時就調用check肯定獲取不到對象啊
或者這樣
<html>
<head></head>
<script defer>
function check(val)
{
alert(document.getElementById(val).value);
}
check("test");
</script>
</head>
<body>
<input name="textfield" type="text" value="888" id="test">
</body>
</html>
加上defer表示載入完文檔以後才開始執行js
7. js如何給一個對象多加一個屬性並賦值
1、js創建一個對象或者在原有對象上添加一個已知屬性,並給這個屬性賦值,寫法如下:
let obj = {'a1':'a1'};obj['a2'] = 'a2';console.log(obj);//輸出{'a1':'a1','a2':'a2'};
2、添加一個變數屬性,並賦值變數,寫法如下:
function add(name,value){let obj = {"a1":"a1"};obj[name] = value;//返回參數console.log(obj);//{"a1":"a1","b1":"b1"}}add("b1","b1");
8. js傳參數,是不能做到修改一個對象的屬性嗎
可以,不用var修飾,代表這個變數是全局變數。看上面列子,name其實就是window對象的一個屬性,也就是全局變數。
9. js 怎麼傳遞一個對象
代碼示例:
<script>
function as(){
var tb = document.getElementById("tb");
var tbdy = document.createElement('tbody');
var tr,td;
var aElem;
for(var k=0;k<3;k++){
tr = document.createElement('tr');
td = document.createElement('td');
aElem = document.createElement('span');
setEvent(aElem);
aElem.innerHTML = "---"+k;
td.appendChild(aElem);
tr.appendChild(td);
tbdy.appendChild(tr);
}
tb.appendChild(tbdy);
}
function setEvent(aElem) {
aElem.attachEvent("ondblclick",function(){d(aElem);});
}
function d(x){
alert(x.innerHTML);
}
as();
</script>