JS字符串拼接在ie中都报错的解决方法

好久不用js了,好多东东都忘了。最近用js拼接字符串时遇到问题了,不论怎么拼接在ie中都报错,很郁闷。

隔了一天,又拿起代码看了下,突然想起在java中拼接字符串转义字符的事,才想起js也有这个东东。

原来这样:


代码如下:

tr += "<td><a href='javascript:void(0);' onclick='confirmDelOneInfo('"+url2+"','"+obj.title+"');'><img src='images/tab/010.gif'/>";

在编辑器中就不报错,到浏览器中怎么点onclick都都不反映,F12就报错,看了下脚本,字符串完全变样

修改后:


代码如下:

tr += "<td><a href='javascript:void(0);' onclick='confirmDelOneInfo(\""+url2+"\",\""+obj.title+"\");'><img src='images/tab/010.gif'/>“

就没问题了。

知识总结:

在js中单双引号的效果是一样的,但是如果你的字符串中有单引号则外面要用双引号,如果你的字符串中存在双引号则外面要用单引号括起来,这样就不用转义字符了。

上面的输出结果是:


代码如下:

onclick='confirmDelOneInfo("http://...?type=1&nodeId=11","测试1");'

看出在html中,如果外面使用单引号则里面要用双引号,否则IE报错,因此用到转义字符\"转换双引号。在动态生成html的元素时,尤其要注意单双引号的问题,否则会很头疼的。

呵呵,一点小知识的总结,欢迎指正....

(0)

相关推荐

  • javascript中字符串拼接详解

    最近在研究<javascript高级程序设计>中,有一段关于字符串特点的描述,原文大概如下:ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,他们的值就不能改变.要改变某个变量的保存的的字符串,首先要销毁原来的字符串,然后再用另外一个包含新值的字符串填充该变量,例如: 复制代码 代码如下: var lang = "Java"; lang = lang + "Script"; 实现这个操作的过程如下:首先创建一个能容纳10个字符的新字符串

  • java字符串拼接与性能分析详解

    假设有一个字符串,我们将对这个字符串做大量循环拼接操作,使用"+"的话将得到最低的性能.但是究竟这个性能有多差?如果我们同时也把StringBuffer,StringBuilder或String.concat()放入性能测试中,结果又会如何呢?本文将会就这些问题给出一个答案! 我们将使用Per4j来计算性能,因为这个工具可以给我们一个完整的性能指标集合,比如最小,最大耗时,统计时间段的标准偏差等.在测试代码中,为了得到一个准确的标准偏差值,我们将执行20个拼接"*"

  • javascript中字符串拼接需注意的问题

    在开发中大家也都会注意尽量使用StringBuilder而不采用普通的字符串拼接方式.但是可能大部分开发者却忽略了js中也需要注意这种效率问题. 下面进行一项性能测试,用事实来说话! 复制代码 代码如下: function xntest(){ var d1=new Date(); var str=""; for(var i=0;i<10000;i++){ str+="stext"; } var d2=new Date(); document.write(&qu

  • JavaScript 学习笔记二 字符串拼接

    var str="hello"; str+="world"; 实际上,这段代码在幕后执行的步骤如下: (1) 创建存储"hello"的字符串. (2) 创建存储"world"的字符串. (3) 创建存储连接结果的字符串. (4) 把str的当前内容复制到结果中. (5) 把"world"复制到结果中. (6) 更新str,使它指向结果. 每次完成字符串连接都会执行步骤2到6,使得这种操作非常消耗资源.如果重

  • 探讨js字符串数组拼接的性能问题

    我们知道,在js中,字符串连接是性能最低的操作之一. 例如: 复制代码 代码如下: var text="Hello";  text+=" World!"; 早期浏览器没有对这种运算进行优化. 由于字符串是不可变的,这意味着要创建中间字符串来存储连接的结果.频繁地在后台创建和销毁字符串导制性能异常低下. 因此,可以利用数组对象进行优化. 例如: var buffer=[],i=0; buffer[i++]="Hello"; //通过相应索引值添加元

  • html数组字符串拼接的最快方法

    第一种:逐个字符串相加 复制代码 代码如下: var arr = ['item 1', 'item 2', 'item 3', ...], list = ''; for (var i = 0, l = arr.length; i < l; i++) { list += '<li>' + arr[i] + ''; } list = '<ul>' + list + '</ul>'; 这种最常见的,但是效率最低!代码逻辑相对来说复杂. 第二种:逐个 push 进数组 复

  • javascript字符串拼接的效率问题

    复制代码 代码如下: function xntest(){ var d1=new Date(); var str=""; for(var i=0;i<10000;i++){ str+="stext"; } var d2=new Date(); document.write(" 字符串拼接方式耗时:"+(d2.getTime()- d1.getTime())+"毫秒:"); d1=new Date(); var sb=ne

  • javascript中拼接HTML字符串的最快、最好的方法

    第一种:逐个字符串相加 复制代码 代码如下: var arr = ['item 1', 'item 2', 'item 3', ...];list = '';for (var i = 0,l = arr.length; i < l; i++) {    list += '' + arr[i] + '';}list = '' + list + ''; 这种最常见的,但是效率最低!代码逻辑相对来说复杂. 第二种:逐个 push 进数组 复制代码 代码如下: var arr = ['item 1',

  • JS字符串拼接在ie中都报错的解决方法

    好久不用js了,好多东东都忘了.最近用js拼接字符串时遇到问题了,不论怎么拼接在ie中都报错,很郁闷. 隔了一天,又拿起代码看了下,突然想起在java中拼接字符串转义字符的事,才想起js也有这个东东. 原来这样: 复制代码 代码如下: tr += "<td><a href='javascript:void(0);' onclick='confirmDelOneInfo('"+url2+"','"+obj.title+"');'>&l

  • vue.js 中使用(...)运算符报错的解决方法

    今天在起别人项目的时候, 发现报错. 这个错误是,项目中不识别es6的扩展运算符, 解决方式很简单. // 第一步 cnpm install babel-plugin-transform-object-rest-spread // 第二步 看一下你的 .babelrc 里面是否有识别es6语法的配置 { "presets": [ ["env", { "modules": false, "targets": { "br

  • 基于php双引号中访问数组元素报错的解决方法

    最近在做微信公众号开发,在一个发送图文接口中,需要把数组元素拼接在XML字符串中 foreach ($itemArr as $key => $value){ $items .= "<item> <Title><![CDATA[$value['title']]]></Title> <Description><![CDATA[[$value['description']]]></Description> <

  • angularjs使用gulp-uglify压缩后执行报错的解决方法

    问题出现原因是由于压缩之后变量变成了,e.s.t等,需要依赖注入的方法没有使用中括号注入,而在function的参数中直接使用,导致压缩之后无法识别需要依赖注入的模块.例如: var module= angular.module('homeApp', ['ui.router']); module.config(function ($sceProvider) { $sceProvider.enabled(false); }) 改为: var module= angular.module('home

  • Vue2.x中利用@font-size引入字体图标报错的解决方法

    利用 vue-cli 搭建的项目平台 利用stylus写的css样式 有 css-loader 依赖包x 下图是 webpack.base.conf.js 关于字体文件的配置 有人这里会有重复的字体文件的配置,删除一项即可 出现的问题:引入字体图标出现问题 1.报错 将字体引入的相对路径改成绝对路径 相对路径 绝对路径 2.不报错,但是出现的字体图标是小方框 有警告信息: 小方块: 报错是因为重定向的问题 出现上述问题的原因 ①没在用到的地方引入字体的样式文件 ②使用的是后缀名为 .styl 文

  • vue init webpack 建vue项目报错的解决方法

    使用vue init webpack 创建vue项目时报如下错误: vue init webpack my-project C:\Users\computer\AppData\Roaming\npm\node_modules\vue-cli\bin\vue-init:60 let template = program.args[0] ^^^ SyntaxError: Block-scoped declarations (let, const, function, class) not yet s

  • layui数据表格 table.render 报错的解决方法

    一.报错信息 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed Jan 23 15:20:18 CST 2019 There was an unexpected error (type=Internal Server Error, status=500). An error happened during temp

  • 详解Vue项目在其他电脑npm run dev运行报错的解决方法

    一个 Vue 项目从一台电脑上传到 github 上之后,再另外一台电脑上 git clone .并使用 npm run dev 或 npm run start 发生以下报错的解决方法. 报错原因 缺少 node_modules 里面的依赖.在项目目录下使用 npm install 然后再 npm run dev. 如果在这一步当中, npm install 执行的过程中,处于一直卡顿的状态.说明网络状况不佳.建议使用 cnpm 淘宝源. 淘宝源 使用 cnpm -v 查看是否已经安装 cnpm

  • window环境下npm install node-sass报错的解决方法

    最近准备想用vue-cli初始化一个项目,需要sass-loader编译: 发现window下npm install node-sass和sass-loader一直报错, window 命令行中提示我全局安装 node-gyp ,有些提示好像是本地找不到python, 于是我按照提示安装node-gyp node-gyp是一个用Node.js编写的跨平台命令行工具,用于编译Node.js的本地插件模块. node-gyp node-gyp官方网址  https://www.npmjs.com/p

  • bootstrap+jquery项目引入文件报错的解决方法

    做一个项目的时候 ,控制台总是会出现各种bug,其实不用慌张,终结起来也就几种类型的错误,在开发中每次遇到错误都善于总结,下次在看到就会胸有成竹知道是什么情况了,以下是在开发过程中总结的一些错误以及错误的解决方法. 报错一:Uncaught ReferenceError: $ is not defined Uncaught ReferenceError: $ is not defined Uncaught ReferenceError: jQuery is not defined 错误原因:文件

随机推荐