blog

DOMのハードコア・ラッピング

この時点でノードが更新され、ノードの最初の子が x に与えられ、x が存在しなくなるまで、ノードに格納されている子の配列に戻ります。...

May 22, 2020 · 2 min. read

カプセル化ドムを行う際には、以下の点を分析する必要があると思います。

質問1:

ノードに親を追加するときに、親ノードを追加すればいいのでは?

  • dom.append(parent,node)を直接実行するとエラーになります。
  • 親を追加する前に、その親にページ上の場所を与えるべきです。
  • 何もないところから親を登場させることはできません。
wrap(node, parent){
 dom.before(node, parent)
 dom.append(parent, node)
 }

質問2:

ノードの子を削除するとき、常に最初の子が削除されるのはなぜですか?

  • forループを使ってすべての子を繰り返し、それらを削除すると、長さがリアルタイムで変化していることがわかります!
  • 別の考え方を試してみてください。
  • ノードの最初の子をxに与え、xが存在するかどうかを判断し、存在すれば削除します。
  • この時点で、ノードが更新され、ノードの最初の子が x に与えられ、x が存在しなくなるまで、ノードの子の配列が返されます。
 empty(node){
 const array = []
 let x = node.firstChild
 while(x){
 array.push(dom.remove(node.firstChild))
 x = node.firstChild
 }
 return array
 }

以下のコードを解析してください: set/view ノードのスタイル属性 オーバーロード+適応

style(node, name, value){
 if(arguments.length===3){ //パラメータが3つある場合は、style属性を設定する。
 // dom.style(div, 'color', 'red')
 node.style[name] = value
 }else if(arguments.length===2){
 if(typeof name === 'string'){ //パラメータが2つあり、nameが文字列の場合は、style属性を参照のこと。
 // dom.style(div, 'color')
 return node.style[name]
 }else if(name instanceof Object){ //パラメーターが2つあり、nameがオブジェクトの場合、style属性を設定する。
 // dom.style(div, {color: 'red'})
 const object = name
 for(let key in object){ //プロパティを反復処理する
 node.style[key] = object[key]
 }
 }
 }
 }

以下のコードを解析してください:セレクタが selector であるノードを見つけます。

//もしセレクタがスコープ・ノードに見つからなければ、ページ全体を見てセレクタを探す。
探す{ 
 return (scope 
 document).querySelectorAll(selector)
 }

以下のコードを解析してください。

//フィルター・メソッドを使って自分自身を除外する
兄弟姉妹{
 return Array.from(node.parentNode.children)
 .filter(n=>n!==node)
 }

以下のコードを分析してください。

  • テンプレート: すべてのタグを保持可能
  • trim:タグの両側からスペースを取り除きます。
  • 戻り値は正しい内容でなければなりません。
create(string) {
 const container = document.createElement("template");
 container.innerHTML = string.trim();
 return container.content.firstChild;
 }
 dom.create(" <div><strong> </strong></div> ")
Read next

html2canvasは、ピットを踏む

1.要件の説明フロントエンドは、学生リストのスプライシングリストの画像によると、背景画像は、バックエンドのインターフェイスが動的に取得され、学生リストの数は、画像の幅を変更しない場合には、可変であり、画像の高さは、動的に学生の数で変更することであり、画像は、プログラムの設計をスプライシング画像の変形を伸ばすことはできません次のとおりです。

May 21, 2020 · 2 min read