JavaScript迷惑问题之六:innerHTML和eval()的问题

Patrick_DK 2002-06-10 09:30:57
麻烦解释一下下面这段代码的三个问题
1.innerHTML
2.innerText
3.eval() Method
各自的含义和用法

<SCRIPT>
function fnCreate(){
oData.innerHTML="";
var oOption=oSel.options[oSel.selectedIndex];
if(oOption.text.length>0){
var aElement=document.createElement(oOption.text);
eval("aElement." + oOption.value + "='" + oText.value + "'");
if(oOption.text=="A"){
aElement.href="javascript:alert('A link.')";
}
}
oData.appendChild(aElement);
}
</SCRIPT>
<SELECT ID="oSel" onchange="fnCreate()">
<OPTION VALUE="innerText">A
<OPTION VALUE="value"><INPUT TYPE="button">
</SELECT>
<INPUT TYPE="text" ID="oText" VALUE="Sample Text">
<SPAN ID="oData" ></SPAN>
...全文
253 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Patrick_DK 2002-06-10
  • 打赏
  • 举报
回复
eval 方法
检查 JScript 代码并执行.

它如何检查呢,如果eval里的js字符串有错,也不会有什么特别提示信息嘛

还是照样报错
blues-star 2002-06-10
  • 打赏
  • 举报
回复
var tmp = "hello";
eval("alert('"+tmp+"')");
或者
var tmp = 999;
eval("alert("+tmp+")");

MSDN里头就有吧~
Patrick_DK 2002-06-10
  • 打赏
  • 举报
回复
你的JS手册哪里下的?
Patrick_DK 2002-06-10
  • 打赏
  • 举报
回复
你的JS手册哪里下的?
sunbeamy 2002-06-10
  • 打赏
  • 举报
回复
eval 方法
检查 JScript 代码并执行.

eval(codeString)

必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。

说明
eval 函数允许 JScript 源代码的动态执行。例如,下面的代码创建了一个包含 Date 对象的新变量 mydate :

eval("var mydate = new Date();");
传递给 eval 方法的代码执行时的上下文和调用 eval 方法的一样.

Patrick_DK 2002-06-10
  • 打赏
  • 举报
回复
window.alert(eval("objs.options[index].value"));

window.alert(objs.options[index].value);
不是一样嘛
干吗还要eval()一下呢
sunbeamy 2002-06-10
  • 打赏
  • 举报
回复
晕-->相当于alert(hello)
Andrawu 2002-06-10
  • 打赏
  • 举报
回复
try:

<select name="s">
<option value="abc">abcabc</option>
<option value="def" selected>defdef</option>
<option value="hij">hijhij</option>
</select>
<script>
var objs =document.all.s ;
var index = objs.selectedIndex ;
alert(eval("objs.options["+index+"].value")) ;
alert(eval("objs.options["+index+"].text")) ;
</script>

or:

<select name="s">
<option value="abc">abcabc</option>
<option value="def" selected>defdef</option>
<option value="hij">hijhij</option>
</select>
<script>
var objs =document.all.s ;
var index = objs.selectedIndex ;
alert(eval("objs.options[index].value")) ;
alert(eval("objs.options[index].text")) ;
</script>

sunbeamy 2002-06-10
  • 打赏
  • 举报
回复
--》相当于eval(hello)
写太快了
sunbeamy 2002-06-10
  • 打赏
  • 举报
回复
-->等价与alert(hello)
写太快了
sunbeamy 2002-06-10
  • 打赏
  • 举报
回复
eval("alert("+tmp+")")等价与eval(hello),hello成了变量名,当然是未定义...
eval的用法看js文档吧
Patrick_DK 2002-06-10
  • 打赏
  • 举报
回复
哦,基本明白outHTML和outText属性的意思了

那个eval Method还不行

var tmp = "hello";
eval("alert("+tmp+")");

提示说"hello"未定义
blues-star 2002-06-10
  • 打赏
  • 举报
回复
<div id=asdf>asdfsadf</div>
<script>
alert(asdf.outerHTML);
alert(asdf.outerText);
</script>
blues-star 2002-06-10
  • 打赏
  • 举报
回复
var tmp = "hello";
eval("alert("+tmp+")");
Patrick_DK 2002-06-10
  • 打赏
  • 举报
回复
window.alert(eval("aElement." + oOption.value + "='" + oText.value + "'"));

的值是oText.value的值"Sample Text"

看不到"aElement."+oOption.value的值
Patrick_DK 2002-06-10
  • 打赏
  • 举报
回复
晕,同时回复了:)

我window.alert(eval);得到的是
function eval()
{
[native code];
}
还是不清楚eval()方法什么用处:(

另外,outHTML和outText哪位能解释一下呢?



zhpfaff 2002-06-10
  • 打赏
  • 举报
回复
oData.innerHTML="";设置ID=oData的SPAN标记内容为空
你可以加上这么一句看看就明白了:
oData.innerHTML="<font size=5>5</font>"
就是将<font size=5>5</font>放在<SPAN ID="oData" ></SPAN>中间
变成了<SPAN ID="oData" ><font size=5>5</font></SPAN>
innerText标记内的内容,
oData.innerText就是oData内被修饰的文本,按上例就是5
你alert eval的结果就知道了




Patrick_DK 2002-06-10
  • 打赏
  • 举报
回复
刚刚查到了innerHTML和innerText属性的用法
/**
* innerText属性用来定义对象所要输出的文本,语句DT.innerText="我很好!"
* innerHTML属性,它除了有innerText的作用外,还可改变对象内部的HTML语句
* 比如把文本输出改成了斜体(<i></i>)并下加一条直线(<u></u>)
* 即语句DH.innerHTML="<i><u>我姓肖!</u></i>"
*/

请问哪位举个outHTML和outText的例子看看呢

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧