javascript - 为什么 jQuery 不把这个 html 字符串转换成 jQuery 对象?

标签 javascript jquery

我有一个模板字符串,需要将其转换为 jQuery 对象,以便我可以解析它并填写数据。

$(function(){

var template = '<h3>Details</h3>' +
    '<ul>' + 
    '<li>Submitted: <span class="submittedTime"></span></li>' + 
    '<li>Submitted by: <span class="submitter"></span></li>' + 
    '<li>Contact Information' +
        '<ul>' +
        '<li>Name: <span class="contactName"></span></li>' +
        '<li>Name: <span class="contactEmail"></span></li>' +
        '</ul>' +
    '</li>';


var t = $(template);

});

当我尝试对它们执行 jQuery 操作(例如 .find())时,它失败了。

你对我做错了什么有什么想法吗?

最佳答案

您需要将代码片段包装在 div 元素内并关闭外部 ul 标记。如果运行下面的代码片段,jQuery 将正确输出 HTML。我已将您的模板转换为多行语句,以便于阅读

a = $(function() {

  var template = `
     <div>
        <h3>Details</h3>    
        <ul>
            <li>Submitted: <span class="submittedTime"></span></li>
            <li>Submitted by: <span class="submitter"></span></li>
            <li>
                Contact Information
                <ul>
                    <li>Name: <span class="contactName"></span></li>
                    <li>Name: <span class="contactEmail"></span></li>
                </ul>
            </li>
        </ul>
    </div>`;


  var t = $(template);

  document.write(t.html())

});

a()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 为什么 jQuery 不把这个 html 字符串转换成 jQuery 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33807537/

相关文章:

javascript - 循环更新类而不是 id 字段

javascript - Bootstrap 4 Beta 2 导航栏切换器不工作

javascript - 为什么 `componentWillReceiveProps` 在 React 的 "Lifting state up"示例中不是必需的?

javascript 在控制台中工作,但不能作为书签

javascript - 使用函数返回数组的总和?我被困住了

javascript - 如何检索旧文本并从总数中减去 - JS

javascript - 无法将可拖动对象放在另一个可放置对象内动态创建的可放置对象上

javascript - FireFox 捕获自动完成输入更改事件

javascript - 如何将项目名称或标题发送到表单输入字段?

javascript - 从元素底部计算像素