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');