① html中的id怎麼變為動態
你的意思是說ID可以動態改變嗎?用js可以實現,但是不推薦這么做,因為ID在一個頁面里是唯一的,變動的話可能會引發一些麻煩。如果你要操作樣式的話建議改變class或者直接用style屬性來做。
JS改變id值的寫法是obj.id = "newid",這個obj就是相對應的HTML對象,比如以下HTML:
<div id="old">這是一個div</div>
那麼JS的代碼就是:document.getElementById("old").id="new";
詳細說說你想要的效果,或許我說的結果並不是你想問的
② 有關java上傳和File以及FileInputStream的區別
File不屬於流,它只是用來屏閉不同文件系統,用來統一 描述文件的實體BEAN,new File時給它傳入文件名稱或是路徑,它就會去根據參數查找對應的文件屬性然後封裝 成實體。用來處理判斷該路徑是一個文件還是路徑,文件或路徑的許可權,修改時間等等,路徑的子路徑list等等目錄操作。
File不屬於文件流,只能代表一個文件或是目錄的路徑名而已.
而FileInputStream關注的是文件的內容,是用來進行文件讀寫等操作的二進制流類。大多數情況下,構造FileInputStream 時傳遞一個File對象做參數,也可以直接傳遞String的文件路徑。
這個容易混淆的問題在FTP時候很容易出現,因為客戶端點擊瀏覽本地文件後在上傳時在伺服器端如果直接把客戶端的 文件名稱拿到,然後用new File(「文件名稱路徑」),再用new InputStream(File)來上傳到FTP的話,其實就是相當於伺服器 端在伺服器本地找File(「文件名稱路徑」),然後往FTP上傳,這是錯誤的。我們希望的是上傳客戶端的文件,而不是 伺服器端的文件,所以這里應該是直接用apache的FileItem.getInputStream的結果直接upload,如下: InputStream fileIn = item.getInputStream();////如果直接寫成這樣new FileInputStream(filePath);就會出現在伺服器本機找file上傳的問題 //可以查看item.getInputStream()最後其實是從memoryOutputStream(內存里記憶的客戶端文件流)來取流的句柄的。
③ 怎樣將text轉換成xml
js:
var xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(text);
//alert(xml.getElementsByTagName("...")[0].getAttribute("..."));
例:
<div id="i">
<?xml version="1.0" encoding="utf-8"?>
<root>
<pic xx="1" src="/images/1.gif">
<news newid="10" />
<news newid="11" />
<news newid="12" />
</pic>
<pic xx="2" src="/images/2.gif" />
<pic xx="3" src="/images/3.gif" />
<pic xx="4" src="/images/4.gif" />
</root>
</div>
function createXml(str) {
if ( document.all ) {
var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
xmlDom.loadXML(str);
return xmlDom;
}
else {
return new DOMParser().parseFromString(str,"text/xml");
}
}
var text = document.getElementById("i").innerHTML.toLowerCase();
text = createXml(text);
alert( text.getElementsByTagName("pic").length );
但是這里的innerHTML會把頁面獲取的字元串中的標簽自動修改格式,如標簽名會轉換成大寫,屬性中的id會由id="5"改成id=5,自動去掉了雙引號,所以加上了toLowerCase,將字元串改成了小寫。
不過這樣不太標准,只能去問微軟為什麼要把innerHTML的東西格式都改了。
建議最好還是調用xml文件,比如將讀取來的xml格式裝入變數,將此變數的值賦到頁面的div中,操作時不去讀頁面,而是直接去讀那個變數。
④ js怎樣獲取iframe,src中的參數
/*
取得目標iframesrc所包含的參數
@paramiframeId-目標iframe的id
@returnObject參數名值對,{參數名:參數值,……}
*/
functiongetIframeParams(iframeId){
varregexpParam=/??([wd%]+)=([wd%]*)&?/g;//分離參數的正則表達式
vartargetEle=document.getElementById(iframeId);
varparamMap=null;
if(!!targetEle){
varurl=targetEle.src;//取得iframe的url
varret;
paramMap={};//初始化結果集
//開始循環查找url中的參數,並以鍵值對形式放入結果集
while((ret=regexpParam.exec(url))!=null){
//ret[1]是參數名,ret[2]是參數值
paramMap[ret[1]]=ret[2];
}
}
returnparamMap;//返回結果集
}
用法:
假設iframe如下
<html>
<head>
</head>
<body>
<iframeid="test"src="url?paramA=a¶mB=b"></iframe>
</body>
</html>
//獲取參數名值對集合
varparamMap=getIframeParams('test');
//paramMap的結構是這樣的:{'paramA':'a','paramB':'b'}
alert(paramMap.paramA);//取出paramA的參數值