那是因为你的DIV还没有加载,脚本就执行了,因为没有找到该对象,所以提示undefined
你可以这样:<div id="a">test</div><script language="javascript">
function test(obj)
{
alert(obj.id);
}
var obj = document.getElementById("a");
eval("test("+obj+")");
</script>
你可以这样:<div id="a">test</div><script language="javascript">
function test(obj)
{
alert(obj.id);
}
var obj = document.getElementById("a");
eval("test("+obj+")");
</script>
<script language="javascript">
function test(obj)
{
alert(obj.id);
} var obj = document.getElementById("a");
eval("test(obj)");
</script>
<script language="javascript">
function test(obj)
{
alert(obj.id);
}
var obj = document.getElementById("a");
eval("test(obj);");
</script>
<div id="a">test</div> 注意,eval()执行的就是JS代码,不用再引用具体变量
DIV还要先加载
<div id="a">test</div>
<script language="javascript">function test(obj)
{
alert(obj.id);
}var obj = document.getElementById("a");
eval("test(obj);");
</script>
在一个Text输入框失去焦点的时候调用getName()方法, 在第一个alert Obj为object, 第二个为undefine, 为什么捏?
function setName()
{
var url = "***";
test(url, "setName");
}function test(reqURL, func)
{
var xmlObj = createXMLObj();
if (xmlObj == null) return "";
xmlObj.onreadystatechange = function()
{
if(xmlObj.readyState == 4)
{
if (func != null && func != '')
{
var obj = xmlObj.responseXML;
alert(obj);
eval(func + "(eval(" + obj + "))");
}
}
}
xmlObj.open('GET', reqURL, true);
xmlObj.send('');
}function setName(obj)
{
alert(obj);
}
{
var url = "***";
test(url, "setName");
}function test(reqURL, func)
{
var xmlObj = createXMLObj();
if (xmlObj == null) return "";
xmlObj.onreadystatechange = function()
{
if(xmlObj.readyState == 4)
{
if (func != null && func != '')
{
var obj = xmlObj.responseXML;
alert(obj);
eval(func + "(eval(" + obj + "))");
}
}
}
xmlObj.open('GET', reqURL, true);
xmlObj.send('');
}function setName(obj)
{
alert(obj);
}
这个返回的是什么
也就是alert(obj);这个弹出来的是什么
两次是一样的吗
<script language="javascript">
function test(obj)
{
alert(obj.id);
}
var obj = document.getElementById("a");
eval(test(obj));
</script>
把引号拿掉啊!
你这也能算是问题吗?如果要
eval(test(obj));
还不如直接
test(obj)
meizz(梅花雪) ( ) 信誉:707
eval只是检索变量,属性,对像,并返回其值,调用DIV,用JS中INNER.HTML会比较好点
function getHandle(obj){
var str="handle_"+obj.id
eval(str+"(obj)")
}
function handle_button1(obj){
alert("乱7八糟"+obj.id)
}
function handle_button2(obj){
alert("啥也不是"+obj.id)
}
function handle_button3(obj){
alert("听到没有"+obj.id)
}</script>
<body>
<input type="button" id="button1" onClick="getHandle(this)" value="button1"/>
<input type="button" id="button2" onClick="getHandle(this)" value="button2"/>
<input type="button" id="button3" onClick="getHandle(this)" value="button3"/>
</body>