2016-09-18 22 views
0
"use strict"; 

Object.prototype.$ = function(selector) { 
    var sel = selector; 
    if (typeof sel == "string") { 
     var elem = document.querySelectorAll(sel); 
     if (elem.length == 1) return elem[0]; 
     else if (elem.length > 1) return elem; 
    } else 
     throw new Error("Can't find element!"); 
} 

Object.prototype.crElem = function(e) { 
    var name = document.createElement(e.name); 
    var place = $(e.place); 
    if (e.value == undefined) { 
     place.appendChild(name); 
    } else if (e.value) { 
     name.innerHTML = e.value; 
     place.appendChild(name); 
    } 
} 

crElem({ 
    name: "button", 
    place: ".slide" 
}); 

このエラーが出てくる: 「キャッチされない例外TypeError:place.appendChildは関数ではありません」"AppendChild"は関数内で動作しませんか?コンソールで

+0

ところで - あなたはjQueryを使ってみませんか?これにはこれ以上のものがあります。 –

+1

なぜ、 'Object.prototype'を通してグローバルを定義するのですか?それはうまくいくかもしれませんが、確かに非正統です。 –

+0

あなたは一貫している必要があります。常に単一の要素を返すか、常に要素の集合を返します。 – Oriol

答えて

0

あなた$()関数は配列を返し、その後、あなたはその上.appendChild()を呼び出そう。もちろん、それは動作しません。 place[0].appendChild(name)のような特定の要素で呼び出す必要があります。また、$()がいくつかの要素を返すとき、あなたは何をしますか?

関連する問題