我只有一个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>
答案 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
属性的结束引用和第一个字符串中的结束>
。在第二个和第三个字符串中,起始和结束标记不会相加。在将代码转换为元素之前,标记必须与完整元素匹配,否则您将无法获得预期的结果。