DHTML DHTML は優れた機能で、フロントエンド インタラクションの実装が大幅に容易になり、ページ要素の取得と動的ページ要素の変更が非常に簡単になります。しかし、すべてのブラウザがこれらの構文を理解できるのでしょうか?
document.all
document.all はすべてのブラウザで認識されるわけではありません。より一般的なコードを記述するには、document.getElementById(…)
element.outerText, element を使用して ID を介して取得するのが最善です。 .innerText、element.outerHTML、element.innerHTML
element.outerText、element.innerText、element.outerHTML は IE に固有ですが、element.innerHTML はユニバーサルです。
他のブラウザで非ユニバーサル属性を使用する場合は、次のコード実装を参照できます:
if(!isIE()){
HTMLElement.prototype.__defineGetter__("innerText",
function(){
var anyString = "";
var childS = this.childNodes;
for(var i=0; iif(childS[i].nodeType==1)
anyString = childS[i] .innerText;
else if(childS[i].nodeType==3)
anyString = ahildS[i].nodeValue;
return anyString; >}
);
HTMLElement.prototype.__defineSetter__("innerText",
function(sText){
this.textContent=sText;
}
}
document.forms.actionForm.inputName.value
以前は、document.all.title.value は、actionForm という名前の入札フォームの title という名前の入力フィールドの値を取得するために使用されていました。この方法で使用するには、まず HTML の form タグが他のタグ構造と完全なクロージャー関係を持っていることを確認する必要があります。
テーブル操作
moveRow (iSource, iTarget) メソッド
oRow = tableObject.moveRow (iSource, iTarget) このメソッドは、テーブル内の tr の動的な順序調整を簡単に実現します。ただし、このメソッドは IE カーネル自体によって実装されており、DOM 標準メソッドではないため、他のブラウザにはありません。これらの IE の独自のメソッドが使用されている場合は、標準の DOM ノード操作メソッド - insertBefore(currobj, beforeObj.nextSibling) に切り替えるか、最初に HTMLDocument クラスのプロトタイプに moveRow メソッドを実装します: ....
// 操作する必要がある tr は、このメソッドの戻り値として配列に入れられます。
}
function getTRByIndex(sourceELIndex){
var trArray = getTRArray(); >var result = trArray[sourceELIndex] ;
return result;
if( !isIE && HTMLElement.moveRow == null )
{
//入力パラメータの説明:
//sourceELIndex: 必須 移動された tr が tbody 内のどの行にあるか (>=1)
//targetELIndex: tbody 内のどの行を移動する必要があるか (>=1, <=)行数)
HTMLElement.prototype .moveRow = function(sourceELIndex,targetELIndex)
{
var tbObject = document.getElementById("tbodyEL");
var resultEL; if(sourceELIndex>=targetELIndex)
{//上に移動
var s = targetELIndex-1;
var t = targetELIndex-1;
var s = sourceELIndex-1; ;
var t = targetELIndex;
var sourceEL = getTRByIndex(s);
var targetEL = getTRByIndex(t); 🎜>//alert("begin" s t );
tbObject.insertBefore(sourceEL,targetEL);
return
}
} >