【问题标题】:Use jQuery to clean up HTML using DRY使用 jQuery 使用 DRY 清理 HTML
【发布时间】:2013-01-16 14:03:47
【问题描述】:

我正在尝试找到一种学习 DRY(不要重复自己)的好方法。我有一个包含大量 HTML 的页面。 90% 的 HTML 是重复的,所以我试图找出如何清除它。

在页面上我有几个问题,所有这些问题都有相同的 html 代码,但文本不同。我在这里有一个项目的 jsFiddle http://jsfiddle.net/SBKyW/

    <div class="container_vragen">
        <p class="open_sub">&#x25BC; Heb je al je verplichtingen al geregeld?</p>
        <div class="antwoorden">
            <input id="ja" type="checkbox" value="ja" class="open_sub_ja"/><label for="ja">Ja</label>
            <input id="nee" type="checkbox" value="nee" class="open_sub_nee"/><label for="nee">Nee</label> 
            <div class="extra_info">?
                <div class="extra_info_popup">
                    Hidden tekst
                </div>
            </div>
        </div>  

        <div class="submenu">
            <div>
                <p>Heb je DigiD?</p>
                <div class="antwoorden">
                    <input id="ja" type="checkbox" value="ja" class="sub_antwoord ja"/><label for="ja">Ja</label>
                    <input id="nee" type="checkbox" value="nee" class="sub_antwoord nee"/><label for="nee">Nee</label> 
                    <div class="extra_info">?
                        <div class="extra_info_popup">
                            Hidden tekst
                        </div>
                    </div>
                </div>
            </div>

            <div>
                <p>Heb je DigiD?</p>
                <div class="antwoorden">
                    <input id="ja" type="checkbox" value="ja" class="sub_antwoord ja"/><label for="ja">Ja</label>
                    <input id="nee" type="checkbox" value="nee" class="sub_antwoord nee"/><label for="nee">Nee</label> 
                    <div class="extra_info">?
                        <div class="extra_info_popup">
                            Hidden tekst
                        </div>
                    </div>
                </div>
            </div>

            <div>
                <p>Heb je DigiD?</p>
                <div class="antwoorden">
                    <input id="ja" type="checkbox" value="ja" class="sub_antwoord ja"/><label for="ja">Ja</label>
                    <input id="nee" type="checkbox" value="nee" class="sub_antwoord nee"/><label for="nee">Nee</label> 
                    <div class="extra_info">?
                        <div class="extra_info_popup">
                            Hidden tekst
                        </div>
                    </div>
                </div>
            </div>
            <p class="akkoord"><br/>Akkoord</p>
            <div class="close_submenu">
                X
                <div class="close_okay">Deze vraag sluiten</div>
            </div>
        </div>
    </div>

这是一个问题所需的 html。每个问题的结构都相同,但显然文本不同。

使用 jQuery 减少我的 html 代码的最佳方法是什么?

【问题讨论】:

  • 你想学习 DRY 吗?您是否正在尝试实现实际目标(减少 HTML)?这是两种不同的方法。
  • 我正在尝试找到一种方法来减少我网站中的 html 代码,因为它会重复很多次。我希望用 jQuery 来做到这一点。

标签: jquery html dry


【解决方案1】:

在某些情况下,使用客户端模板(也称为 JavaScript 模板)可能是避免重复 HTML 的好方法。

基本上,您可以编写一个 HTML“模板”并将其应用于任意数量的对象。

但是,由于 HTML 会在页面加载时生成,我很确定搜索引擎永远不会看到它。如果我错了,也许有人可以纠正我?

无论如何,如果您认为这可能是您正在寻找的东西,那么那里有很多 JS 模板库。我个人使用 John Resig 的极轻量级解决方案的略微修改版本:http://ejohn.org/blog/javascript-micro-templating/

干杯

【讨论】:

  • 我认为搜索引擎可能会看到它。我用运行时生成的动态 HTML 编写了很多页面,搜索引擎似乎没有问题。我猜他们只是加载页面,然后在完成加载时解析 HTML,而不是只查看原始代码。
  • 感谢您的链接,今晚晚些时候我会检查一下。
  • 感谢 Surfitscrollit,我会考虑在某个时候对此进行测试。如果引擎真的看到它,我会更多地使用模板。
猜你喜欢
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 2011-10-21
  • 2015-01-09
  • 2018-02-16
相关资源
最近更新 更多