首页 文章

在字符串中添加引号

提问于
浏览
-3

Headers 可能会产生误导,但我对JavaScript很新,引号已经杀了我 .

当页面加载时,我正在尝试向视图添加一个编辑按钮,并在单击时提醒随机数,如下所示:

var docid = OSZVMeFDJ0eNaCNMffDTji5cf2I3 // random string 
 $("#tableUser").append('<button type="button" class="btn btn-danger" onclick="loadUser('+ docid +')"><i class="fas fa-user-edit"></i> Edit User</button>');

和:

function loadUser(id) {
   console.log(id);
        alert(id);
}

但是这段代码既不打印也不警告 . 是因为它没有引号吗?是不是函数参数可以是从Integer到String的任何东西?

更新

结果我把 onlick() 放到 i 这意味着编辑图标,现在我删除并将其添加到按钮但是在控制台上获取:

ReferenceError:找不到变量:OSZVMeFDJ0eNaCNMffDTji5cf2I3

6 回答

  • 1

    您将处理程序 onclick 不附加到 button ,而是附加到元素 i . 如果您在项目中导入了font-awesome图标,请尝试单击按钮内的图标,它将显示警告 .

    解决办法就是在 button 元素上移动 onclick 属性: $("#tableUser").append(<button type="button" class="btn btn-danger" onclick="loadUser(${docid})"><i class="fas fa-user-edit"></i> Edit User</button>);

    (编辑后)你当然还需要在qoutes中包装 docid

    var docid = "OSZVMeFDJ0eNaCNMffDTji5cf2I3"
    

    您还可以在javascript(反引号)中使用第三种类型的qoutes,这将允许您使用单和双qoutes而不转义并使用字符串插值 .

  • 1

    OSZVMeFDJ0eNaCNMffDTji5cf2I3不是字符串,它应该是'OSZVMeFDJ0eNaCNMffDTji5cf2I3' . Java脚本使用OSZVMeFDJ0eNaCNMffDTji5cf2I3作为变量名称,并且看到它未定义 .

  • 0
    var docid = OSZVMeFDJ0eNaCNMffDTji5cf2I3
    

    应该

    var docid = "OSZVMeFDJ0eNaCNMffDTji5cf2I3"
    

    否则,您尝试使用OSZVMeFDJ0eNaCNMffDTji5cf2I3作为变量,该变量不存在 .

    如果您从头开始学习JavaScript编程,还有其他一些指示:

    • 唐't use var. Use const or let, depending if it'是常数或变量 .

    • 避免使用jQuery . 十年前,这是一个很好的图书馆 . 今天的JavaScript是不必要的,会阻碍你的学习 . 特别是当你跳转到今天的任何框架和库时 .

    • 使用模板字符串,with this quotes . 然后,您可以使用$ 插入任何变量 .

    loadUser($ {}的docID)

  • 1

    您在字符串中缺少 <tr><td> 以创建有效的HTML

    EDIT

    你必须在 docId 周围加上引号,因为它是一个字符串而不是一个数字

  • 0

    问题是 OSZVMeFDJ0eNaCNMffDTji5cf2I3 isn 't a string. JavaScript sees that and assume it'是一个变量 . 修复问题的方法是简单地将这些字符包装在双 " 或单个 ' 引号中 - 然后JavaScript将识别该字符串 .

    //The function we will call when the button is clicked.
    function loadUser(id) {
      console.log(`docid is: ${id}`);
    }
    
    //Add the event listener
    document.querySelector('#docIdBtn').addEventListener('click', function() {
      //Notice how the string is wrapped in quotation marks
      var docid = "OSZVMeFDJ0eNaCNMffDTji5cf2I3";
      //Call the function you defined above, pass in the "id" arg.
      loadUser(docid);
    });
    
    <button id="docIdBtn">Click</button>
    

    阅读关于String syntax .

  • 2

    您可以使用称为模板文字或刻度的新ES6功能来实现此目的 .

    $("#tableUser").append(`<button type="button" class="btn btn-danger" onclick="loadUser(${docid})"><i class="fas fa-user-edit"></i> Edit User</button>`);
    

相关问题