Javascript 包含引号和点的.append()内容存在问题

Javascript 包含引号和点的.append()内容存在问题,javascript,jquery,html,quotes,Javascript,Jquery,Html,Quotes,我想使用.append(SOMET HTML code)将HTML代码添加到表中 在我的中,我想实现一个onclick()事件,它调用一个函数,但是引号和内容本身似乎存在一些问题(因为内容是一个足球运动员的名字,这个名字包含一个点状:M**.*Neuer) 我的jQuery如下所示: $('.player_table').append('<tr id="'+pos+players.id+'" costsForThisPlayer="12.2" class="goalKepperRow" o

我想使用
.append(SOMET HTML code)
将HTML代码添加到表中

在我的
中,我想实现一个
onclick()
事件,它调用一个函数,但是引号和内容本身似乎存在一些问题(因为内容是一个足球运动员的名字,这个名字包含一个点状:
M**.*Neuer

我的jQuery如下所示:

$('.player_table').append('<tr id="'+pos+players.id+'" costsForThisPlayer="12.2" class="goalKepperRow" onclick="addGoalkeeperByClickEvent("'+players.name+'", "gk1", 12.2)><td>something</td></tr>');

如何正确更改jquery部分?

您的HTML字符串在双引号中包含双引号。 您必须使用单引号并将其转义:

'... onclick="addGoalkeeperByClickEvent(\''+players.name+'\', \'gk1\', 12.2)"...'
// or:
'... onclick=\'addGoalkeeperByClickEvent("'+players.name+'", "gk1", 12.2);\'...'

旁注:

  • 显示者的成本
    不是一个问题。使用属性存储自定义值
  • 使用
    onClick
    属性。应该考虑使用jQuery设置<代码>点击()/<代码>事件处理程序。< /P> 由于您的内容是动态添加的,因此您必须使用以下命令在表上委派
    单击
    事件:

    那么您的HTML创建部分将是:

    $('<tr/>').attr({
      'id'                      : pos+players.id,
      'class'                   : "goalKepperRow",
      'data-costsForThisPlayer' : "12.2",
      'data-name'               : players.name,
      'data-something'          : "gk1"
    })
    .append('<td>something</td>')
    .appendTo('.player_table');
    
    $('').attr({
    “id”:pos+players.id,
    “类”:“守门员佩罗”,
    “显示器的数据成本”:“12.2”,
    “数据名”:players.name,
    “数据某物”:“gk1”
    })
    .append('某物')
    .appendTo(“.player_table”);
    

  • 通过前缀\来避免有问题的引号。为了便于阅读,我建议使用语法'text${string}'。thx用于帮助,thx用于额外的旁注,但我要调用的函数基于数据库中的值,这就是为什么我在HTML部分尝试使用onClick()的原因。。。(我希望我描述得足够好,呵呵)@nbg15,那么为什么不使用
    data-*
    属性来存储每个元素的数据库值呢?
    '... onclick="addGoalkeeperByClickEvent(\''+players.name+'\', \'gk1\', 12.2)"...'
    // or:
    '... onclick=\'addGoalkeeperByClickEvent("'+players.name+'", "gk1", 12.2);\'...'
    
    $('.player_table').on('click', `.goalKepperRow`, function(){
        var costsForThisPlayer = $(this).attr('data-costsForThisPlayer');
        var playerName = $(this).attr('data-name');
        var something = $(this).attr('data-something');
        // all the values that you're passing to the onClick function are here
        // ... the rest of your addGoalkeeperByClickEvent() method ...
    });
    
    $('<tr/>').attr({
      'id'                      : pos+players.id,
      'class'                   : "goalKepperRow",
      'data-costsForThisPlayer' : "12.2",
      'data-name'               : players.name,
      'data-something'          : "gk1"
    })
    .append('<td>something</td>')
    .appendTo('.player_table');