ipython%%javascript魔术输出到单元格和控制台

ipython%%javascript魔术输出到单元格和控制台,javascript,ipython-notebook,console.log,Javascript,Ipython Notebook,Console.log,如何调整ipythons的%%javascript单元格魔法,使其 输出到ipython的输出单元和浏览器的控制台,如下所示 我不想使用alert()。此外,我尝试使用%%scriptmagic获得与nodejs类似的行为 %%script node console.log("Hi") 但这不是我需要的 您可以访问jquery中包装的名为element的变量下的输出Dom节点。因此: %%javascript element.text('Hi') console.log('There') 刚

如何调整ipythons的
%%javascript
单元格魔法,使其 输出到ipython的输出单元和浏览器的控制台,如下所示

我不想使用
alert()
。此外,我尝试使用
%%script
magic获得与nodejs类似的行为

%%script node
console.log("Hi")

但这不是我需要的

您可以访问jquery中包装的名为
element
的变量下的输出Dom节点。因此:

%%javascript
element.text('Hi')
console.log('There')

刚刚遇到了这个问题,这让我了解了其中的一部分,但正如前面提到的,如果只使用element.text(),则只能得到最后一个。但您可以在%%javascript和的同一单元格中重复使用element.append(),所有输出都将转到以下单元格。如果您想要回车,请确保附加一个
。比如说

function assert(cond,msg)
{
   if (!cond)
   {
     element.append(msg + "<br>");
   }
}
函数断言(cond,msg)
{
如果(!cond)
{
元素。追加(msg+“
”); } }
当我尝试使用它两次(
element.text('Hi')element.text('Bye')
)时,它只输出最后一个。正如在answer元素中所述,它是一个已经存在的dom节点。使用确实会替换内部文本,但这是DOM api。您需要使用Dom操作API来创建新的元素,并将它们创建到您可以访问的元素。但这就是“如何从javascript构建HTML”,这超出了本问题的范围。请注意,元素是通过jQuery实现的,而且
element.HTML('Hi')
也可以使用,并且在传递格式化输出(例如,带有
br
的多行、标记等)方面更加灵活。