JS中innerHTML问题

zjsxcf 2011-06-26 09:31:06
jsp代码如下:
<td><%= lineOperMenu.replaceFirst("name=\"LINE_OPER\" id=\"LINE_OPER\"", "name=\"LINE_OPER"+i+"\" id=\"LINE_OPER"+i+"\" dataType=\"Require\" msg=\"请选择"+i+"。\"") %></td>

这里的lineOperMenu为一个select.

我想把这段代码放到js中应该怎么改,下面那样写好像不行。

newcell.innerHTML='<%= lineOperMenu.replaceFirst("name=\"LINE_OPER\" id=\"LINE_OPER\"", "name=\"LINE_OPER"+i+"\" id=\"LINE_OPER"+i+"\" dataType=\"Require\" msg=\"请选择"+i+"。\"") %>';
...全文
967 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
aperson111 2011-06-29
  • 打赏
  • 举报
回复
试试用
newcell.innerText='<%= lineOperMenu.replaceFirst("name=\"LINE_OPER\" id=\"LINE_OPER\"", "name=\"LINE_OPER"+i+"\" id=\"LINE_OPER"+i+"\" dataType=\"Require\" msg=\"请选择"+i+"。\"") %>';
CaiKanXP 2011-06-29
  • 打赏
  • 举报
回复
试试:
newcell.innerHTML='<%= lineOperMenu.replaceFirst("name=\"LINE_OPER\" id=\"LINE_OPER\"", "name=\"LINE_OPER"+i+"\" id=\"LINE_OPER"+i+"\" dataType=\"Require\" msg=\"请选择"+i+"。\"").replaceAll("[\r\n]+", "") %>';
sirzxj 2011-06-28
  • 打赏
  • 举报
回复
不抛弃,不放弃,每天发帖
sirzxj 2011-06-26
  • 打赏
  • 举报
回复
浅谈javascript 性能优化
jumpheightway 2011-06-26
  • 打赏
  • 举报
回复
语法有问题
是可以那样写的
sirzxj 2011-06-26
  • 打赏
  • 举报
回复
错了 think box
  • 打赏
  • 举报
回复
发最后生成的客户端html看看
zjsxcf 2011-06-26
  • 打赏
  • 举报
回复
这里的i是一个全局变量,我改成下面那样还是不行,请指教,谢谢!

newcell.innerHTML='<div align="center"><%= lineOperMenu.replaceFirst("name=\"LINE_OPER\" id=\"LINE_OPER\"", "name=\"LINE_OPER'+i+'\" id=\"LINE_OPER'+i+'\" dataType=\"Require\" msg=\"请选择'+i+'。\"") %></div>';
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zell419 的回复:]

<% %> ?
js应该不能这么操作 。
[/Quote]

哈哈。。
zjsxcf 2011-06-26
  • 打赏
  • 举报
回复
String lineOperMenu = null;

lineOperMenu =
"
<select name="DLINE_OPER" id="LINE_OPER" style="width:186px;">
<option value="" selected="selected">=========请选择=========</option>
<option value="OFFICE">办公室</option>
<option value="TECHNOLOGY_DEPT">技术部</option>
</select>
";

<td><%= lineOperMenu.replaceFirst("name=\"LINE_OPER\" id=\"LINE_OPER\"", "name=\"LINE_OPER"+i+"\" id=\"LINE_OPER"+i+"\" dataType=\"Require\" msg=\"请选择"+i+"。\"") %></td>

这段代码在JSP中是能工作的,现在的问题是放到<script>里就不能工作了。不知道应该怎么改?

  • 打赏
  • 举报
回复
是不是你的
<%= lineOperMenu.replaceFirst("name=\"LINE_OPER\" id=\"LINE_OPER\"", "name=\"LINE_OPER"+i+"\" id=\"LINE_OPER"+i+"\" dataType=\"Require\" msg=\"请选择"+i+"。\"") %>

这块代码里面输出了换行空白符或者单引号字符?

这些都会导致字符串不闭合,需要用动态脚本替换掉换行空白符号,然后对单引号进行转移替换,将'替换为\'
zjsxcf 2011-06-26
  • 打赏
  • 举报
回复
谢谢楼上的回答,我描述错误了,我是放在JSP文件里的<script>的,
<script type="text/javascript">

//表格底部新增一行
function add_xianlu(){
i++;
newRow=document.all.bxsq.insertRow(-1); //这里是-1表示从尾部插入,如果值为0表示从头部插入。
newcell=newRow.insertCell();
newcell.innerHTML='<div align="center"><%= lineOperMenu.replaceFirst("name=\"LINE_OPER\" id=\"LINE_OPER\"", "name=\"LINE_OPER"+i+"\" id=\"LINE_OPER"+i+"\" dataType=\"Require\" msg=\"请选择"+i+"。\"") %></div>';
}
</script>

现在的问题就是这样还出错
  • 打赏
  • 举报
回复
newcell.innerHTML='<%= lineOperMenu.replaceFirst("name=\"LINE_OPER\" id=\"LINE_OPER\"", "name=\"LINE_OPER"+i+"\" id=\"LINE_OPER"+i+"\" dataType=\"Require\" msg=\"请选择"+i+"。\"") %>';

这句不能放到.js文件里面,放在动态页<script>标签块里面是没问题的,因为.js文件不支持动态脚本
zjsxcf 2011-06-26
  • 打赏
  • 举报
回复
replaceFirst是字符串替换函数,js中貌似只有replace,这个在这里应该怎么用?
zell419 2011-06-26
  • 打赏
  • 举报
回复
lineOperMenu.replaceFirst这个方法是干什么的啊 ?
zjsxcf 2011-06-26
  • 打赏
  • 举报
回复
请问应该怎么操作。JS高手帮忙看一下。
zell419 2011-06-26
  • 打赏
  • 举报
回复
<% %> ?
js应该不能这么操作 。
hellosean1025 2011-06-26
  • 打赏
  • 举报
回复
好像不行提示了什么错误呢?
检查下newcell是不是dom节点对象
  • 打赏
  • 举报
回复
不是告诉过你了,你这样已经换行了,导致字符串未闭合,替换lineOperMenu变量中的换行符号

没用过java,不知道转义对不对
lineOperMenu ="<select name=\"DLINE_OPER\" id=\"LINE_OPER\" style=\"width:186px;\"><option value=\"\" selected=\"selected\">=========请选择=========</option><option value=\"OFFICE\">办公室</option><option value=\"TECHNOLOGY_DEPT\">技术部</option></select>";
zjsxcf 2011-06-26
  • 打赏
  • 举报
回复
newcell=newRow.insertCell();
newcell.innerHTML='<div align="center"><select name="LINE_OPER'+i+'" id="LINE_OPER'+i+'" dataType="Require" msg="请选择线路运营商'+i+'。" style="width:153px;">
<option value="" selected="selected">=======请选择=======</option>
<option value="DX">电信</option>
<option value="LT">联通</option>
<option value="YD">移动</option>
<option value="TT">铁通</option>
</select>
</div>';

客户端生成的信息是这样的。也就是如何innerHTML一个select。

87,990

社区成员

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

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