使用onclick函数在javascript中创建一个元素,该函数传递$\u session var
我想要的html代码:使用onclick函数在javascript中创建一个元素,该函数传递$\u session var,javascript,jquery,html,session,dom,Javascript,Jquery,Html,Session,Dom,我想要的html代码: <a onclick="DeleteImage('javascript:this.id', <?=$_SESSION['UserID']?>)"></a> 当我不必传递$\u session变量,而只具有此函数时,这就起作用了 function DeleteImage(aid){} 然后我可以在javascript中创建a元素,如下所示: cross = document.createElement('a'); cross.oncl
<a onclick="DeleteImage('javascript:this.id', <?=$_SESSION['UserID']?>)"></a>
当我不必传递$\u session
变量,而只具有此函数时,这就起作用了
function DeleteImage(aid){}
然后我可以在javascript中创建a元素,如下所示:
cross = document.createElement('a');
cross.onclick = function() { DeleteImage(this.id) };
如何创建a元素,使其生成所需的html代码?
我想要像这样的东西:
cross.onclick = function() { DeleteImage(this.id, "<?=$_SESSION['UserID']?>") };
cross.onclick=function(){DeleteImage(this.id,”)};
这显然不起作用。任何相关帮助:)我认为您应该改变检索信息的方式,例如
$\u SESSION['UserID']
。一个有趣的选项是创建数据
属性,例如在
标记本身中:
<html data-user-id="<?=$_SESSION['UserID']?>">
完成后,可以使用旧方法调用DeleteImage
。(注意:您也可以在Chrome、Firefox和Opera中使用document.documentElement.dataset.userId
。IE中有部分多边形填充,但我想在您的情况下不值得这样做。)
您甚至可以保存一些额外的周期,在脚本开头检索值并将其存储在范围变量中:
var userId = document.documentElement("data-user-id");
function DeleteImage(aid) {
...
}
有点离题,我可以建议使用一些更现代的方式来附加事件侦听器吗?如果脚本是由PHP生成的(例如,嵌入到页面中),那么可能需要考虑某种类型的?。我想情况并非如此?我有一个脚本,它将在一个单独的文件中创建此元素,该文件无法到达$\u session将此类信息放入
meta
元素非常糟糕,不要这样做。如果您希望JavaScript可以使用一个值,那么您可以简单地让PHP编写代码来创建一个JS变量。如果我在函数中获取meta元素,它会起作用,但是由于某种原因,如果我从外部获取它,它就不起作用。这对我来说并不重要,但我只是想指出:)我是javascript编程新手,肯定会查看事件。谢谢,我能做到吗@您知道JavaScript变量及其赋值是如何静态编写的,对吗…?那么,用PHP生成的值分配部分替换值分配部分的问题在哪里呢?效果也一样,但现在我不必有meta标记。var userId=;
function DeleteImage(aid) {
var userId = document.documentElement.getAttribute("data-user-id");
...
}
var userId = document.documentElement("data-user-id");
function DeleteImage(aid) {
...
}