微軟專家請進﹐innerHTML問題﹗

lmh79 2002-03-05 10:19:52
TableId.rows[row].cells[i].innerHTML=strTemp;
alert(TableId.rows[row].cells[i].innerHTML);

如上所示﹕ 如果 strTemp='<a href="test.htm"></a>'時候
下面alert出來的值將會是一個<a href="/../../test.htm"></a>的絕對路徑值﹗

我試過其他几種集合﹐但沒有找到解決的辦法﹐請給予指導﹐謝謝﹗
...全文
398 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmh79 2002-03-11
  • 打赏
  • 举报
回复
可以﹐不過也有些缺點﹗
8988 2002-03-10
  • 打赏
  • 举报
回复
能不能用innerText,它可以使用添加的内容不转变为脚本文件。
lmh79 2002-03-07
  • 打赏
  • 举报
回复
但是input里面的是別人輸入的呀﹐可能輸入單引號﹐也可能輸入雙引號啊﹐而之前我只能選擇一種﹐要么
<id="a" input value="">
要么
<id="b" input value=''>


wuyueyoumu 2002-03-07
  • 打赏
  • 举报
回复
这个问题简单了,因为单双引号都是最近匹配的,不存在象括号一样的级别匹配,所以,当它的有效的部分肯定是两个双引号中间的部分了,所以只能是TEST了。如果你的赋值是一个需要执行的字符串,那么就应该使用单双引号交替了,中间是单引号,外面是双引号。
<id="a" input value="">
<id="b" input value=''>
是一样的效果。
<id="a" input value="1">
<id="b" input value='1'>
也是一样的效果。
<id="a" input value="select * from customs where name = 'join'">
正确。
<id="b" input value='select * from customs where name = 'join''>
错误。
<id="b" input value="select * from customs where name="+"'"+"join"+"'">
也可以了。



lmh79 2002-03-07
  • 打赏
  • 举报
回复
呵呵﹐太謙虛了你﹗
wuyueyoumu 2002-03-07
  • 打赏
  • 举报
回复
呵呵,不好意思,我资质有点愚钝,没有太明白你的意思!我的QQ40151521,直接讨论一下吧!
lmh79 2002-03-06
  • 打赏
  • 举报
回复
var cell = tableid.rows[].cells[];
cell.innerText = strTemp;

這樣基本達到了我的目的﹗ 還有單引號和雙引號的問題﹐估計用
var datainput = document.createElement('input');
datainput.type ='text';
datainput.value= '';

這種方式可以解決﹗
bistar 2002-03-06
  • 打赏
  • 举报
回复
g z
floodzhu 2002-03-06
  • 打赏
  • 举报
回复
elem.innerHTML = strTemp.replace("<","<");

OK!
lmh79 2002-03-06
  • 打赏
  • 举报
回复
哦﹐我試了一下﹐单引号和双引号總會有個有問題﹗ 下面我描述一下啊﹗

<id="a" input value="">
<id="b" input value=''>

當通過變量賦帶有雙引號的值給a時﹐原本的值就顯示不全﹐例如﹕
<id="a" input value="test"temp"> 這時候看到的就只有test了﹗

單引號同理﹗
ohno 2002-03-06
  • 打赏
  • 举报
回复
厉害啊
wuyueyoumu 2002-03-06
  • 打赏
  • 举报
回复
怎么能解决问题就怎么办吧!只要能达到目的就可以了!只是我没有太明白你说的单引号和双引号的问题指的是什么?
lmh79 2002-03-05
  • 打赏
  • 举报
回复
我希望的是給某個單元格賦什么值它就能保持什么值﹐不要做任何改變﹗

請給予解決方案﹗
lmh79 2002-03-05
  • 打赏
  • 举报
回复
如果:
strTemp="<a>"
那么﹕
alert出來的就是﹕<a></a>
wuyueyoumu 2002-03-05
  • 打赏
  • 举报
回复
刚刚给你发了一个帖子没有贴上去。
取值应该使用innerText
cell.innerText = datainput.value;
删除结点
cell.removeChild(datainput);
datainput.removeNode(false);
搞定。
wuyueyoumu 2002-03-05
  • 打赏
  • 举报
回复
在取值的时候你应该使用的是innerText。
也就是cell.innerText = datainput.value;
删除结点
cell.removeChild(datainput);
datainput.removeNode(false);
那么就搞定了。应该说完全符合你的要求的。只是看你明白我的意思没有了!
wuyueyoumu 2002-03-05
  • 打赏
  • 举报
回复
果然是了,就是用innerHTML生成INPUT TEXT元素吧!其实你可以尝试完全使用JAVASCRIPT来构造这个东西了!
代码可以这样了!
var datainput = document.createElement('input');
datainput.type ='text';
datainput.value= '';
var cell = tableid.rows[].cells[];
cell.appendChild(datainput);
这样你就可以避免使用复杂的HTML语句了。
如果要取值的话,那么使用cell.value就可以直接的操作了。
如果你不想要那个text了,那么你就可以删除调就可以了。
同样的可以采用循环的方式的。感觉是不是更为的面向对象一点。

你下载那个东西看了之后我想你对这个操作就有个很直观的了解了!
这么和你说吧,我就是那个DBGRID的设计者了。如果有什么问题我们还可以讨论。还有那个帮助里面的价格问题你也不用担心的。如果你们是大的开发用户的话那么如果可能的话签署合作协议之后你们就可以免费的使用这个东西了。这样你们就不用写很多的代码了开发了。不过那个DBGRID也有一些问题的,只是不影响功能罢了。我们现在正在构建新的DBGRID。而且我们的IDE开发小组也正在构建基于JCL组件的集成开发环境。如果你的东西是符合开发规范的,你也可以自己写自己的组件,到时候只要添加进去就可以在这个环境里面给用户构造JSP了。只是这个东西要等那么一段时间了。也欢迎你提出各种意见。
虽然有推销的嫌疑,不过我还是很乐意从技术上和大家讨论的。毕竟我知道的还是有限,希望和大家交流。希望不要因为这个原因影响大家的交流。
lmh79 2002-03-05
  • 打赏
  • 举报
回复
我目前是這么做的﹗
每一行行首有個編輯按鈕﹐點擊后該行循環用tableid.rows[].cells[].innerHTML取值賦到生成的input的value,保存后恢復原來沒有控件的感覺也是循環取tableid.rows[].cells[].children[0].value然后賦到tableid.rows[].cells[]里面去﹗

你說的那個東西﹐我會下下來看看的﹗
wuyueyoumu 2002-03-05
  • 打赏
  • 举报
回复
不刷新页面的数据库操作?JCL就是针对这个概念做的了!我还是没有太明白你的意思。我猜测你的做法是,一个TABLE元素了,然后在点击事件里面在某个单元格生成INPUT的TEXT元素,然后输入保存对吧。而且为了达到目的,你对每一个(或者是某一个获得焦点的)CELL进行了HTML赋值从而改变里面的元素类型。其实没有必要这么做的,不知道你对DOM模型使用了没有。我建议你使用DOM模型。会比HTML简单很多了,面向对象的方法。JCL最初的时候也是使用的的innerHTML的形势。不过后来全改了。如果我的猜测不错的话,里面的东西就是你想要的了。DBGRID就是一个可以编辑,成批数据录入提交的那么一个组件了。具体的你可以看看它的源代码了。我也不好说得很清楚,因为我对你的情况不是很了解。至于你的客气似乎就不必了,因为我也在用JAVASCRIPT了,大家共同提高是件好事情了。
lmh79 2002-03-05
  • 打赏
  • 举报
回复
我的應用是這樣的﹕
模擬不刷新的對數據庫操作的葉面﹐用jsp做的﹗ 點擊某行﹐此行動態構造input給輸入﹐修改等﹐然后保存﹐用0*0的iframe來處理對數據庫的操作﹐葉面不進行刷新﹗ 問題如下﹕
錄入狀態﹕
某行某列: <input name="" value="xyz">
保存后﹐此行列為﹕xyz
進數據庫基本沒有問題﹐就是多操作几次后﹕
<input name="" value="<a>">
此時﹕那個地方的值變為﹕<a></a>
再點﹕則﹕<input name="" value="<a></a>">
能明白我的意思嗎﹗ 呵呵﹐很謝謝你和我討論這個問題﹗
加载更多回复(14)

87,994

社区成员

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

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