0

このコードを DOM に追加する前に、クラス「customerID」を持つ div がある HTML スニペットを返してくれるサービスがあります。モデルに customerID があるかどうかを確認する必要があります。ない場合は、見つける必要があります。切り取った div を削除します。

これはどのように達成できますか?

4

3 に答える 3

1

他の回答が示しているように、持っているスニペットを解析し、dom 操作メソッドを使用して必要なものを削除するのがおそらく最善です。これは@Darienの回答に似ていますが、私のものには必要な依存関係が含まれており、実際の例です。

require([
    'dojo/dom-construct',
    'dojo/query',
    'dojo/NodeList-dom', // provides query(...).orphan()
    'dojo/domReady!'
], function(dom_construct, query) {

    // get your html snippet; hardcoded here for convenience and example
    var html_snippet = [
        '<div>',
            '<div class="customerID">customerID</div>',
            '<div class="content">other content</div>',
        '</div>'
    ].join(''),
        has_customerid = false;

    var node = dom_construct.toDom(html_snippet);

    if (!has_customerid) {
        query('.customerID', node).orphan();
    }

    document.body.appendChild(node);
});

これにより、スニペットが解析され、存在するかどうかがチェックcustomerIDされ、存在しない場合は指定されたノードが削除されます。

ここにフィドルがあるのでhas_customerid、ノードをいじって、ノードに必要なことを何でもすることができます。query(...)おそらく、 ;の結果を検証したいと思うでしょう。エラーチェックを省略しました。

于 2013-09-18T00:56:31.290 に答える
-1

JQuery がある場合は、次の方法で実行できます。

var html = $(htmlSnippet);
if(!modelHasCustomerID){
    $(".customerID", html).remove();   
}
container.append(html);

私は dojo にあまり詳しくありませんが、これは dojo.create、dojo.destroy、および dojo.query と同様の方法で実行できると信じています。

于 2013-09-17T18:40:46.263 に答える