如何在Javascript中使用标签连接2个变量?

时间:2015-11-12 23:33:08

标签: javascript

我只有一个2 vars女巫包含html标签,我想连接它们,我尝试concat也+但奇怪它不起作用。

function html_with_category(){  
     var html_with_category = $('<div id="q_section" style="display:none</div>'); 
return html_with_category;  
     }

function html_without_category(){
    var html_without_category = $('<div class="q_rt_rowcell-1-title"></div></div><div class="om"></div>'); 
  return html_without_category; 
    }
 function html_last_div(){
       var html_last_div = $('</div></div></div></div>'); 
     return html_last_div;  
    }


var html_with_cat =  html_with_category();
var html_without_cat =  html_without_category(); 
var html_last_d = html_last_div();

我想收到一个var

 var concatdivs = html_with_cat + "" + html_last_d; 

和concatdivs看起来像

<div class="q_rt_rowcell-1-title"></div></div><div class="om"></div></div></div></div></div>

2 个答案:

答案 0 :(得分:4)

当您将一串HTML传递给jQuery时,它会将其转换为DOM。

它不会围绕一串原始HTML包装jQuery对象,而是首先将HTML转换为元素。

因此,您无法在其中创建带有div开始标记的jQuery对象,创建另一个带有div结束标记的jQuery对象,然后将它们连接起来。

你必须传递类似格式正确的标记。

如果你想连接HTML的字符串(我通常建议不要这样做,因为它通常会比处理DOM树更复杂),那么你需要将它们保存为字符串直到你完成连接(然后你可以通过jQuery传递最后一个字符串)。

答案 1 :(得分:0)

您在变量中没有HTML代码,您已使用$()函数将代码解析为DOM元素,这些元素包含在jQuery对象中。

如果您不将字符串解析为元素但将它们保存为字符串,则可以轻松地连接HTML代码:

function html_with_category(){  
  var html_with_category = '<div id="q_section" style="display:none</div>'; 
  return html_with_category;  
}

function html_without_category(){
  var html_without_category = '<div class="q_rt_rowcell-1-title"></div></div><div class="om"></div>';
  return html_without_category; 
}

function html_last_div(){
  var html_last_div = '</div></div></div></div>';
  return html_last_div;
}

var html_with_cat = html_with_category();
var html_without_cat = html_without_category(); 
var html_last_d = html_last_div();

var concatdivs = html_with_cat + html_last_d;

如果您希望将结果作为元素,则可以在连接字符串后执行此操作:

var concatdivs = $(html_with_cat + html_last_d);

注意:您应该检查字符串中HTML代码的语法。您缺少style属性的结束引用和第一个字符串中的结束>。在第二个和第三个字符串中,起始和结束标记不会相加。在将代码转换为元素之前,标记必须与完整元素匹配,否则您将无法获得预期的结果。