我想onclick在锚点上更改属性的值.我想将其设置为包含JavaScript的新字符串.(该字符串由服务器提供给客户端JavaScript代码,它可以包含您可以onclick在HTML 中的属性中放置的任何内容.)以下是我尝试过的一些内容:
attr("onclick", js)不适用于Firefox和IE6/7.setAttribute("onclick", js)Firefox和IE8,但不是IE6/7.onclick = function() { return eval(js); }不起作用因为您不允许使用return传递给的代码eval().任何人都有建议将onclick属性设置为使其适用于Firefox和IE 6/7/8?另请参阅下面我用来测试它的代码.
<html>
<head>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var js = "alert('B'); return false;";
// Set with JQuery: doesn't work
$("a").attr("onclick", js);
// Set with setAttribute(): at least works with Firefox
//document.getElementById("anchor").setAttribute("onclick", js);
});
</script>
</head>
<body>
<a href="http://www.google.com/" id="anchor" onclick="alert('A'); return false;">Click</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在尝试编辑现有'select'元素的'onchange'事件.
例如,我有以下代码:
<select id="sel_id" onchange="javascript:foo();" >
Run Code Online (Sandbox Code Playgroud)
每当我尝试更改其'onchange'属性时,我使用以下内容:
$("#sel_id").attr("onchange", "foo_2()");
Run Code Online (Sandbox Code Playgroud)
仅供参考,此代码应该没有问题,'onchange'属性保持不变.那你该怎么编辑呢?
AMMENDMENT:
您可以删除该属性,然后绑定不同的函数,如:
$("#sel_id").removeAttr("onchange").bind("change", function(){ foo_2(); });
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在,是否有可能在不首先删除它的情况下更改'onchange'属性?