2017-12-22 5 views
0

私は、クリックするとdivを作成する関数を持っています。これは、同じテキストを持つdivが既に存在していない場合にのみ発生します。私はいくつかのことを試しました。'text'がアクティブなdiv - 演算子に含まれていない場合

この機能に埋め込ま
if (div.text().indexOf(type) == 0) 
if (div.innerHTML.indexOf(type) == 0) 
if (!div.hasOwnProperty(type)) 

a.click(function(json) { 
    var type = $(this).data("type"); 
    saveType(); 

    function saveType(root) { 
    if (typeof root === 'undefined') { 
     root = $('#category_wrapper'); 
    } 
    var div = $("<div id='typeSaved' class='waves-effect waves-light btn '>" + type + "</div>"); 
    if (!div.hasOwnProperty(type)) { 
     root.append(div); 
    } 
    } 
}) 

正しくif文の書き方を、誰か知っていますか?

+0

divで識別するために何かをdivに追加します。データテキスト属性のようにして比較する –

+0

なぜローカル関数を引数で定義しますか?引数を渡さないのはなぜですか? – Barmar

+0

あなたは以前の質問で判断して、頻繁にそうするようです。 – Barmar

答えて

1

あなたは、このような文字列のテスト中の特定のdivのコンテンツをテストすることができます。

$('div:contains('+test+')').filter(function(){ return $(this).text() == test; }).length > 0 

:試合はちょうどサブテストですが、私たちはそこまでそれをフィルタ処理した後が含まれています。その後、.filter()オペレーションは完全一致のためにこの要素のセットをテストします。

+0

素晴らしい。私はそれを少し調整して、今は私のために働く。フィルタ(function(){return $(this).text()== type;})。length == 0) ''($( 'div:contains(' + type + ')') ありがとうございます。 – Nixen85

関連する問題