相关疑难解决方法(0)

为什么在HTML中使用onClick()是一种不好的做法?

我曾多次听说过onClick()在HTML 中使用JavaScript事件是一种不好的做法,因为它对语义不利.我想知道缺点是什么以及如何修复以下代码?

<a href="#" onclick="popup('/map/', 300, 300, 'map'); return false;">link</a>
Run Code Online (Sandbox Code Playgroud)

html javascript

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

将HTML插入div

我试图将一大块HTML插入到div中.我想看看简单的JavaScript方式是否比使用jQuery更快.不幸的是,我忘记了如何以"旧"的方式做到这一点.:P

var test2 = function(){
    var cb = function(html){
        var t1 = document.getElementById("test2");
        var d = document.createElement("div");
        d.id ="oiio";
        d.innerHtml = html;
        t1.appendChild(d);
        console.timeEnd("load data with javascript");
    };
    console.time("load data with javascript");
    $.get("test1.html", cb);
}
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

编辑:
有人问哪个更快,jquery或普通js所以我写了一个测试:http:
//jsperf.com/html-insertion-js-vs-jquery

普通js快10%

javascript

110
推荐指数
6
解决办法
42万
查看次数

是否可以在不破坏后代事件监听器的情况下附加到innerHTML?

在下面的示例代码中,我将onclick事件处理程序附加到包含文本"foo"的span.处理程序是一个匿名函数,弹出alert().

但是,如果我分配给父节点alert(),则此innerHTML事件处理程序将被销毁 - 单击"foo"将无法弹出警告框.

这可以解决吗?

<html>
 <head>
 <script type="text/javascript">

  function start () {
    myspan = document.getElementById("myspan");
    myspan.onclick = function() { alert ("hi"); };

    mydiv = document.getElementById("mydiv");
    mydiv.innerHTML += "bar";
  }

 </script>
 </head>

 <body onload="start()">
   <div id="mydiv" style="border: solid red 2px">
     <span id="myspan">foo</span>
   </div>
 </body>

</html>
Run Code Online (Sandbox Code Playgroud)

html javascript innerhtml dom-events

100
推荐指数
2
解决办法
26万
查看次数

使用javascript createElement创建<br />?

我需要<br />使用javascript动态创建标记.

var br = document.createElement('br');
Run Code Online (Sandbox Code Playgroud)

var br = document.createElement('<br />');
Run Code Online (Sandbox Code Playgroud)

不起作用

第一个选项<br>在页面上创建了一个标签,该标签没有通过XHTML标准,是否有这个?

html javascript

27
推荐指数
3
解决办法
8万
查看次数

在 JavaScript for 循环之后添加到 innerHTML

所以我只是测试 JavaScript 的基本功能。我试图将 设定<li>在 之内,<ul>但由于某些简单的原因,我li被放置在 之外ul

var test = document.getElementById('testdiv');
var data = [1,2,3,4,5];
    
test.innerHTML += '<ul>'; 
for (var i = 0; i < data[i]; i++)
{
test.innerHTML += '<li>' + i + '=' + data[i] + '</li>';
} 
test.innerHTML += '</ul>';
Run Code Online (Sandbox Code Playgroud)
.start{
    border: 1px solid #000;
}  
Run Code Online (Sandbox Code Playgroud)
  
     <div class="start" id="testdiv"></div>
  
Run Code Online (Sandbox Code Playgroud)

目前的html结果如下所示:

<div class="start" id="testdiv">
 <ul></ul>
 <li>0=1</li>
 <li>1=2</li>
 <li>2=3</li>
 <li>3=4</li>
 <li>4=5</li>
</div>
Run Code Online (Sandbox Code Playgroud)

如果能得到一个简单解释的预期结果,我们将不胜感激。

<div class="start" id="testdiv">
  <ul>
   <li>0=1</li> …
Run Code Online (Sandbox Code Playgroud)

html javascript

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

For loop through Array仅显示最后一个值

我正在尝试遍历一个Array,然后使用innerHTML创建一个新的

  • 数组中每个条目的元素.不知何故,我的代码只显示了数组的最后一个值.我被困在这几个小时,似乎无法弄清楚我做错了什么.

    window.onload = function() {
    
    // Read value from storage, or empty array
    var names = JSON.parse(localStorage.getItem('locname') || "[]");
    var i = 0;
    
        n = (names.length);
        for (i = 0; i <= (n-1); i++) {
            var list = names[i];
            var myList = document.getElementById("list");
            myList.innerHTML = "<li class='list-group-item' id='listItem'>"+ list + "</li>" + "<br />";
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    我的HTML中有一个带有id"list"的UL.

  • html javascript arrays loops

    4
    推荐指数
    1
    解决办法
    3719
    查看次数

    焦点不适用于文本区域

    我正在创建一个页面,用户可以在其中添加问题及其解决方案,他可以删除问题,还可以使用 javascript 中的 DOM 动态编辑它。我希望每当用户单击编辑按钮时,出现的文本框就会自动对焦。

    这是我页面的 javascript 代码...

    var questionText;
    var answerText;
    var questionArray=[];
    var answerArray=[];
    var i=0;
    var j=10000;
    
    function addProblem(){
        var body = document.getElementsByTagName('body')[0];
        questionText = document.getElementById('questionId').value;
        answerText = document.getElementById('answerId').value;
    
        questionArray.unshift(questionText);
        answerArray.unshift(answerText);
    
        var myContainer = document.getElementById('container');
        var myDiv = document.createElement("div");
        var questionLogo = document.createElement("p");
        questionLogo.id = "questionLogo";
        var textNode = document.createTextNode("Question:");
        var question = document.createElement("p");
        question.id = "question";
        var questionDetail = document.createTextNode(questionArray[0]);
    
        var deleteButton = document.createElement("button");
        deleteButton.innerHTML = "Delete";
        deleteButton.id = i;
        var editButton = document.createElement("button");
        editButton.innerHTML = …
    Run Code Online (Sandbox Code Playgroud)

    html javascript jquery

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

    JS 中模板字符串中的 HTML 元素

    我在模板字符串中添加 HTML 元素时遇到问题。我想在我的<li>元素中添加新行,但<br>被解释为字符串。

    let movieDescription = document.createTextNode(`${moviesData[i].title} <br> ${moviesData[i].year} <br> ${moviesData[i].genre} <br>${moviesData[i].summary}`);
    
    Run Code Online (Sandbox Code Playgroud)

    如何<br>在模板字符串中添加元素?

    html javascript ecmascript-6

    4
    推荐指数
    1
    解决办法
    7419
    查看次数

    DOMParser将<script>标记附加到<head>/<body>但不执行

    我试图通过DOMParser将字符串解析为完整的HTML文档,然后用处理过的节点覆盖当前页面.该字符串包含完整的标记,包括<!doctype>,<html>,<head><body>节点.

    // parse the string into a DOMDocument element:
    var parser = new DOMParser();
    var doc = parser.parseFromString(data, 'text/html');
    
    // set the parsed head/body innerHTML contents into the current page's innerHTML
    document.getElementsByTagName('head')[0].innerHTML = doc.getElementsByTagName('head')[0].innerHTML;
    document.getElementsByTagName('body')[0].innerHTML = doc.getElementsByTagName('body')[0].innerHTML;
    
    Run Code Online (Sandbox Code Playgroud)

    这是因为它成功地获取了已解析的HTML节点并在页面上呈现它们; 但是,解析后的字符串中<script><head><body>节点中存在的任何标记都无法执行= [.直接使用html标签进行测试(与head/ 相反body)会产生相同的结果.

    我也尝试过使用.appendChild()而不是.innerHTML()改变:

    var elementHtml = document.getElementsByTagName('html')[0];
    
    // remove the existing head/body nodes from the page
    while …
    Run Code Online (Sandbox Code Playgroud)

    javascript domparser

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

    如何使用按钮使用JavaScript计算数组?

    如何使用按钮使用JavaScript计算数组?

    我的代码:

    var dataset = ["A", "B", "C", "D", "E"];
    var counter = 0;
    
    function onClick() {
      counter++;
    };
    
    document.write(dataset[counter]);
    Run Code Online (Sandbox Code Playgroud)
    <button type="button" onClick="onClick()">Click me</button>
    Run Code Online (Sandbox Code Playgroud)

    我想首先打印"A",然后在单击按钮时打印"B",依此类推.

    我目前的代码不起作用.如何修复代码来实现这一目标?

    javascript

    3
    推荐指数
    1
    解决办法
    148
    查看次数

    尝试使用Javascript的替换字符串来使用脚本

    我只是在编写这个脚本,但我无法弄清楚为什么它不会运行!任何帮助赞赏.

    使用Javascript

    $(document).ready(function() {
    var str = document.getElementById('size').innerHTML; 
    var res = str.replace('<p>','<input type="checkbox" value="');
    var res = str.replace('</p>','" id="size" name="size[]" checked />');
    document.getElementById('size').innerHTML=res;
    });
    
    Run Code Online (Sandbox Code Playgroud)

    HTML

    <div id="size">
        <p>xs</p>
        <p>s</p>
        <p>m</p>
        <p>l</p>
        <p>xl</p>
    </div>
    
    Run Code Online (Sandbox Code Playgroud)

    这是JS小提琴:http://jsfiddle.net/L2LGV/

    javascript jquery

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

    如何从对象数组创建 HTML 表格?

    我需要从对象数组生成一个表。

    例如,数组是:

    let arr = [{name: 'Player1',score:10},
    {name: 'Player2',score: 7},
    {name: 'Player3',score:3}]
    
    Run Code Online (Sandbox Code Playgroud)

    HTML 输出应该是:

    姓名 分数
    玩家1 10
    玩家2 7
    玩家3 3

    我想不出通过普通 JS 实现这一点的方法。另外,创建表格后,我将如何对其应用CSS?

    任何帮助,将不胜感激。

    html javascript arrays javascript-objects

    0
    推荐指数
    1
    解决办法
    5600
    查看次数