javascript - 在 jQuery 中构建 html 元素的最清晰方法

标签 javascript jquery coding-style element

我见过很多在 jQuery 中创建元素的不同风格(和几种不同的方法)。我很好奇构建它们的最清晰方法,以及任何特定方法是否出于任何原因在客观上优于另一种方法。以下是我见过的一些示例样式和方法。

var title = "Title";
var content = "Lorem ipsum";

// escaping endlines for a multi-line string
// (aligning the slashes is marginally prettier but can add a lot of whitespace)
var $element1 = $("\
    <div><h1>" + title + "</h1>\
        <div class='content'>  \
        " + content + "        \
        </div>                 \
    </div>                     \
");

// all in one
// obviously deficient
var $element2 = $("<div><h1>" + title + "</h1><div class='content'>" + content + "</div></div>");

// broken on concatenation
var $element3 = $("<div><h1>" +
                title + 
                "</h1><div class='content'>" +
                content +
                "</div></div>");

// constructed piecewise
// (I've seen this with nested function calls instead of temp variables)
var $element4 = $("<div></div>");
var $title = $("<h1></h1>").html(title);
var $content = $("<div class='content'></div>").html(content);
$element4.append($title, $content);

$("body").append($element1, $element2, $element3, $element4);

请随意演示您可能使用的任何其他方法/样式。

最佳答案

模板很棒,如果您可以在项目中访问它们,我建议您使用它们。如果您使用 UnderscoreLodash它是内置的。但是在某些情况下,无论是重构还是测试,您都需要在代码中构建 HTML。我发现当需要时,下面的格式是最清晰易读的。

注意:HTML spec允许在标记中为属性使用单引号或双引号,因此不必为所有疯狂的转义而烦恼。

this.$fixture = $([
  "<div>",
  "  <div class='js-alert-box'></div>",
  "  <form id='my-form-to-validate'>",
  "    <input id='login-username' name='login-username'>",
  "  </form>",
  "</div>"
].join("\n"));

关于javascript - 在 jQuery 中构建 html 元素的最清晰方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9760328/

相关文章:

javascript - 删除脚本中的换行符

javascript - 第二次单击可关闭切换 div

javascript - 如何调试 JavaScript 中的客户端错误?

javascript - Access-Control-Allow-Origin 不允许 Origin http ://127. 0.0.1

php - 格式化关联数组声明

javascript - Web 音频 API - 捕获音频 - 禁用低通滤波器

javascript - 如何从 jQuery 异常中获取消息

jquery - 为什么 Tinymce 第二次加载失败?

java - Spring Boot Autowiring 时的空指针

ruby - 使用 CamelCase 命名 Ruby 常量是一种不好的风格吗?