这个引号嵌套怎么理解?

$(".aaron2").on('click', function() {

    $('a').wrap(function() {
    return '<div class="' + $(this).text() + '" />';
    })
})

关于这段  return '<div class="' + $(this).text() + '" />';代码里面的引号怎么什么意思?没怎么看懂!麻烦高手解析一下
阅读 2.4k
3 个回答

其实就是
<div class=" + $(this).text() + " />
=>
<div class="$(this).text()" />

javascript中字符串可以用单引号' 或者使用双引号"来包裹的

//在javascript字符串中如果碰到没有转义的第一个相同的引号则表示一段字符串结束
var a1 = 'abc';//碰到c后面的单引号直接结束了这个字符串
var b1 = "def";//碰到f后面的双引号直接结束了这个字符串
//否则就当做是字符串继续处理
var a2 = 'abc"defg';//c后面的是双引号,和外层不一样,所以依旧是一个完整的字符串
var b2 = "hij'klmn";
//如果要使用相同的引号则需要使用\来转义
var a3 = 'abc\'defg';
var b3 = "hij\"klmn";

再看你的例子'<div class="' + $(this).text() + '" />'
假定$(this).text() = 'class',很明显期望的最后结果是

<div class="class"/>

这段html作为文字在js中如果使用双引号:

var html = "<div class=\"class\"/>";//需要转义

如果使用单引号:

var html = '<div class="class"/>';//无需再转义

然后字符串拼接就是单纯的+

var str = 'abc'+'def';  // ->  abcdef
var html = '<div class="'+'class'+'"/>'; // -> <div class="class"/>
//替换为变量就是:
'<div class="' + $(this).text() + '" />'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题