标签: createelement

用onclick创建一个按钮的javascript

我正在尝试使用javascript来创建一个按钮,该按钮具有一个onclick事件,该事件调用头部中定义的函数,该函数作为相对于按钮的dom对象的参数.我该怎么做呢?

例如:

<html>
<head> <script>function blah(obj){alert(obj.value)}</script></head>
<body>
<button onclick="blah(this.parentNode.value);"></button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

var newButton = document.createElement("button");
???
Run Code Online (Sandbox Code Playgroud)

最后我希望新按钮与现有按钮相同.

javascript dom createelement

14
推荐指数
1
解决办法
7万
查看次数

在Jquery中创建元素

我想通过像这样使用"div.someelement"在Jquery/Javascript中创建元素

var SomeElement = $("div.someelement");
$( "#container" ).append( SomeElement );
Run Code Online (Sandbox Code Playgroud)

但是我不想复制同一个类的元素,我想创建一个新的元素.

document.createElement是创造"<div.somelement>"而不是<div class="someelement">

javascript jquery createelement

13
推荐指数
2
解决办法
3万
查看次数

如何知道动态创建的脚本标签已执行?

我正在动态创建脚本标记:

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'utf-8';
script.defer = true;
script.async = true;
script.text = 'some my javascript content here';
head.appendChild(script);

script.onload = function () {
    // this never get fired..
    debugger;
}
Run Code Online (Sandbox Code Playgroud)

如何在其他代码块中执行脚本时收到通知?也许有些事件?

谢谢!

javascript script-tag createelement

10
推荐指数
1
解决办法
1万
查看次数

使用纯Javascript创建输入字段

我试图只用JS创建这样的元素:

<input type="text" value="default">
Run Code Online (Sandbox Code Playgroud)

为此,我尝试了这段代码:

var mi = document.createElement("input");
mi.type= "text"
mi.value = "default"
Run Code Online (Sandbox Code Playgroud)

但是当我在Chrome开发工具中运行它时,它只会创建这个元素:

<input type="text">
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

html javascript createelement

8
推荐指数
2
解决办法
5万
查看次数

将元素添加为字符串与createElement()

为了什么我要完成,我可以使用createElement()innerHTML与一个字符串.

到底哪个真的更快?很长一段时间以来,我一直认为字符串比返回相同结果的内置函数慢得多,但这是真的吗?

我问,因为我已经尝试过createElement(),似乎所有必须添加到每个元素的属性都会减慢速度.不仅如此,它也占用了更多的空间.我有一个循环,根据数组的长度从1-infinity到任何地方,但最好在显示减速迹象之前添加多达50个左右的元素.在我想要创建的这50个元素中,大约有10个元素.所以,总的来说,它实际上创造了大约500个元素.

通过创建具有内置函数的元素,我注意到比平时更快的减速,并且由于我无意中重置该数组(数组是5D并且未在同一脚本中设置),我想知道哪个在完成任务之前,无论是速度还是简单的更好的练习,都是真的更好.

javascript performance innerhtml createelement

7
推荐指数
1
解决办法
4522
查看次数

Javascript:onclick/onsubmit用于动态创建按钮

我按照我在互联网上找到的方式动态创建一个按钮:

 Page = function(...) {
   ...
 };

 Page.prototype = {
   ...
   addButton : function() {
     var b = content.document.createElement('button');
     b.onclick = function() { alert('OnClick'); }
   },
   ...
 };
Run Code Online (Sandbox Code Playgroud)

不幸的是,它没有工作并抛出以下错误:

  Error: [Exception... "Component is not available"  nsresult: "0x80040111
  (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: chrome://knowledgizer/content
  /knowledgizer.js :: <TOP_LEVEL> :: line 137"  data: no]
  Source File: chrome://browser/content/tabbrowser.xml Line: 434
Run Code Online (Sandbox Code Playgroud)

setAttribute的解决方案:

b.setAttribute("onClick", "alert('OnClick')");
Run Code Online (Sandbox Code Playgroud)

但是,我希望调用一个类方法(而不是alert),并且b.onclick语法在这方面看起来更好,我希望/想.这个onclick案件是否敏感?因为如果我写

b.onClick = function() {alert("OnClick");} // notice the spelling onclick vs onClick
Run Code Online (Sandbox Code Playgroud)

我没有得到上面的错误,但它仍然无法正常工作,即我没有收到警报.我很感谢任何提示.

作为一个额外的问题:如何在单击按钮时避免重新加载当前页面?我只是想调用一个方法而不是导致页面重新加载.

谢谢和最好的问候,

基督教

javascript element dynamic onclick createelement

7
推荐指数
1
解决办法
6万
查看次数

我可以使用 createElement 创建自关闭元素吗?

我试图在body.

现在我有这个:

// Prepend vsr-toggle
var vsrToggle = document.createElement("div");
vsrToggle.innerHTML = "<input type='checkbox' name='sr-toggle' id='srToggle'><label for='srToggle' role='switch'>Screen reader</label>"
document.body.insertBefore(vsrToggle, pageContent);
Run Code Online (Sandbox Code Playgroud)

它工作正常,因为 HTML 被添加到创建的div. 但是,我需要在前面添加此元素而不将其包装在 div 中。

有没有一种方法可以在不先创建元素的情况下添加 HTML?如果没有,我可以将 the 创建input为自关闭元素并将其附加label到它吗?

有更好的方法来实现这一目标吗?

干杯!

html javascript prepend createelement

7
推荐指数
1
解决办法
3969
查看次数

如何将子项渲染到 VueJs 中指定的命名槽中?

请参阅下面的代码,即使指定了插槽名称,当前所有子项都在默认插槽中呈现。

不确定 vue createElement 函数是否支持命名槽?

@Component({
    props:[]
})
export class TestComponent extends Widget{
    items:any[];
    render(h:any){
        const rootcmp = {
            template:`<div>
                Temp:<slot name="temp"></slot>
                Default:<slot></slot>
            </div>`
            , data:()=>{
                return {};
            }
        }
        const cmp = {
            template:'<div slot="default">This is child</div>'
            , data:()=>{
                return {};
            }
        }
        const cmp2 = {
            template:'<div slot="temp">This is child</div>'
            , data:()=>{
                return {};
            }
        }
        return h(rootcmp, [h(cmp), h(cmp2)]);
    }
}
Run Code Online (Sandbox Code Playgroud)

当前行为:

<div>
Temp:Default:
<div>This is child</div>
<div>This is child</div>
</div>
Run Code Online (Sandbox Code Playgroud)

预期行为:

<div>
Temp:
<div>This is child</div> …
Run Code Online (Sandbox Code Playgroud)

render slot createelement vue.js vuejs2

6
推荐指数
1
解决办法
960
查看次数

在 JavaScript 中创建按钮元素

我正在尝试在javascript不使用 的情况下创建一个按钮元素jQuery

当我尝试将其附加到 DOM 时,我不断收到错误消息。

“无法读取 null 的属性‘appendChild’”

我到处都找遍了,但找不到如何创建按钮。在 w3Schools 示例中,他们在已经在 HTML 中创建的按钮元素上使用了一个函数,这不是我想要做的。这就是我所拥有的。

HTML:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
meta charset="UTF-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<meta http-equiv="X-UA-Compatible" content="ie=edge"> 
<title>Document</title> 
<script src="myapp.js"></script> 
</head> 
<body> 
<div id="btn">Button Here</div> 
</body> 
</html>
Run Code Online (Sandbox Code Playgroud)

myapp.js

var element = document.createElement("button");
element.appendChild(document.createTextNode("Click Me!"));
var page = document.getElementById("btn");
page.appendChild(element);
console.log(element);
Run Code Online (Sandbox Code Playgroud)

html javascript element button createelement

6
推荐指数
2
解决办法
3万
查看次数

动态创建的可编辑 iframe 在 Firefox 中不起作用

我有一个在 JavaScript 中生成的 iframe,createElement()当一个函数被触发时,它变成了一个文本编辑器。它在 Chrome、Safari 和 Edge 中运行良好,但在 Firefox 中,innerHTML文本“文本层”将在 iframe 中短暂闪烁,然后消失,并且 iframe 似乎不可编辑。经检查,iframe 的 body 标签为空。如果我contentEditable在检查器中将 iframe 的 body 标记设置为 true,它似乎可以正常工作,但是当我尝试在我的 JS 函数中设置它时,Firefox 中没有任何反应。

我猜这与在 JavaScript 中创建的 iframe 有关,因为将designModeDOM 中已经存在的 iframe设置为'On'with JS 似乎可以正常工作。想知道是否有办法让它在 Firefox 中工作,也许是另一种创建 iframe 的方法?我看到了一些类似的问题,这些问题是通过在 iframe 中放置一些 javascript 来解决的src,就像这里的评论一样,但这显然会导致其他浏览器出现问题。在 JS 中创建 iframe 比从某个地方附加它更可取。

function text() {
var rtf = document.createElement("iframe");
rtf.name = "richTextField";
rtf.id = "richTextField";
rtf.className = "texteditor";
var dwrap = document.createElement("div"); …
Run Code Online (Sandbox Code Playgroud)

html javascript iframe firefox createelement

6
推荐指数
1
解决办法
621
查看次数