2012-05-14 10 views
0

私はそうのようなオブジェクトを自分で作成したい:DOMにオブジェクトを追加するには?

function Table() 
{ 

}; 
Table.prototype.toString = function () 
{ 
    return '<table><tr><td></td></tr></table>'; 
}; 
var table = new Table(); 

$('body').append(table); 

はしかし失敗しました。それで、あなた自身のオブジェクトのためにこれを引き出すトリックは何ですか?似たようなものがイメージで見られます。

var image = new Image(); 
image.src = '//some_image.jpg'; 
$('body').append(image); 

今、私はテーブルの等価物には興味がありません。テーブルは自分のオブジェクトの単なる例です。

+2

あなたは明示的に ')('のtoStringを呼び出したり、コンストラクタはDOMノードを返すようする必要があると思います。 'Image'は何とかDOMノードから継承しますが、' Node'を継承したカスタムオブジェクトを作成することはできません。 –

答えて

0

definetly働く何かこの

function Table() 
{ 
    return document.createTextNode("That´s a table"); 
}; 

をお試しください:

Table.prototyp.toDOM = function() 
{ 
    return document.createTextNode("That´s a table"); 
}; 

$("body").append(table.toDOM()); 
+0

私は、あなたの方法が実際に行く最善の方法であることを(http://perfectionkills.com/whats-wrong-with-extending-the-dom/)読んでいます。 – Mark

+0

実際の 'document.createElement(" table ")'を返さないのはなぜですか?そしてあなたのプロトタイプには "e" – Bergi

0
<script> 
    var htmlCon = "<div id='iconDiv'><table style='align:center;color:#fff;'></table></div>"; 
    $('body').append(htmlCon); 
    $('#iconDiv').addClass("iconDiv").css({"left":xPos+20, "top":yPos-80}); 
    $('#iconDiv table').append('<tr><td colspan="4" style="color:#000"><b>Event</b></td><td align="right" valign=""><ahref="javascript:close()">X</a></td></tr>'); 
    $('#iconDiv table').append('<tr><td>When</td><td>:</td><td>'+""+day+""+'-'+""+monthName+""+' - '+""+year+""+'</td></tr>'); 
    $('#iconDiv table').append('<tr><td>What</td><td>:</td><td><input type="text" name="wht" id="wht"><input type="hidden" name="start" id="start" value='+"'"+year+""+'-'+""+month+""+'-'+""+day+"'"+'><input type="hidden" name="end" id="end" value='+"'"+year+""+'-'+""+month+""+'-'+""+day+"'"+'></td></tr>'); 
    $('#iconDiv table').append('<tr><td colspan="5">e.g. Tea at the Ritz</td></tr>'); 
    $('#iconDiv table').append('<tr><td colspan="5"><input type="button" value="createEvent" class="button" onclick="CreateEvent()">&nbsp;<input class="button" type="button" value="editEvent" onclick="editEvent('+"'"+year+"'"+','+"'"+month+"'"+','+"'"+day+"'"+')"></td></tr>');</script> 
関連する問題