我有像这样的javascript函数
function doIt(link) {
alert(link);
}
我在下面给出了JS代码中调用了这个函数,我正在创建一个标记并在运行时将它附加到我的html页面:
jQuery.each(data, function (i, val) {
var card = '<a href="Views/NewsDetail.html" onclick=" doIt(' + val.Img + '); "> \
<div class=" card"> \
<img src='+ val.Img + ' /> \
<p>'+ val.Title + '</p> \
</div> \
</a>';
document.getElementById('News').innerHTML += card;
});
比如说val.Img = 'abcd'
当我点击标记时,它会调用doIt(abcd)
,但我想调用doIt('abcd')
将其作为字符串传递。
是否有解决方法。
答案 0 :(得分:2)
您需要转义
之类的引号var card ='<a href="Views/NewsDetail.html" onclick="doIt(\'' + val.Img + '\'); "> \
//^ ^
根据您当前的实现,参数abcd
被视为变量,因此您必须获得undefined
答案 1 :(得分:1)
以下HTML字符串已使用两个引号直到字符doIt(
。因此,引号内的任何字符串类型值都必须使用任何引号字符进行转义。
var card = '<a href="Views/NewsDetail.html" onclick=" doIt(' + val.Img + '); ">'
到[添加引用转义字符\“]
var card = '<a href="Views/NewsDetail.html" onclick=" doIt(\"' + val.Img + '\"); ">'
答案 2 :(得分:1)
你可以这样做:
var card='<a href="Views/NewsDetail.html;" onClick="Test(\'' + val.Img + '\'); "></a>';
答案 3 :(得分:0)
又一个选择:
var doItAndRedirect=function(val){
//do stuff with val here
window.location = "Views/NewsDetail.html";
}
jQuery.each(data, function (i, val) {
var card = '<a href="javascript:doItAndRedirect(\''+ val +'\')">'+
'<div class=" card">' +
'<img src='+ val.Img + ' />' +
'<p>'+ val.Title + '</p>' +
'</div>'+
'</a>';
document.getElementById('News').innerHTML += card;
});
答案 4 :(得分:-1)
它已经是一个字符串,它不会在drop table if exists test;
create table test (id INTEGER, name TEXT,
PRIMARY KEY (id) on conflict replace,
UNIQUE (name));
insert into test values (1, "a");
insert into test values (1, "a");
insert into test values (2, "b");
insert into test values (2, "a");
上显示''
,但在背景中它只是字符串。
答案 5 :(得分:-1)
doIt(&#34;&#39; + val.Img +&#39;&#34;);
应该这样做,但如果你有,例如&#34;在val.Img你需要引用那些:How do I add slashes to a string in Javascript?