2016-01-21 38 views
1

我有一個具有一些自定義屬性的html頁面。我想確保我的代碼中的自定義屬性只有唯一的值。 (就像檢查重複的ID一樣,而不是檢查屬性名稱,檢查屬性值是唯一的)。HTML - jquery。在自定義屬性中搜索重複值

下面我已經發布了我的ID的實際代碼,但我不知道如何處理屬性。

我需要確保我的自定義屬性值是唯一的像ID。

/* Check for dobbelt ID */ 
checkID: function(){ 
    $j('[id]').each(function(){ 
     var ids = $j('[id="'+this.id+'"]'); 
     if(ids.length>1 && ids[0]==this){ 
      alert('Multiple IDs #'+this.id); 
     } 
    }); 
}, 


/* Check for dobbelt value in attribute. */ 
checkParameter: function(parmName) { 
    $j("'["+parmName+"]'").each(function(){ 
     var parmAttr = $j(this).attr(parmName); 
      if(parmAttr.length > 1 && paramAttr[0]){ 
       alert($j(this).id + "dublicates:" + parmAttr); 
      } 
    }); 
} 
+0

你面對什麼樣的問題呢?你有拼寫錯誤'parmAttr'和'paramAttr'拼寫錯誤。 –

+0

它不會爲我的自定義屬性提供重複項。 它不給我警報(是的,我已經從我的代碼中刪除了警報的評論)。 所以我面臨的checkParameter不會給我的自定義值被重複在頁面上的其他地方的對象的ID。 – user3314032

+0

你能告訴我們一些適用於這種情況的HTML嗎?還有 - 你是否嘗試過在'checkParameter()'函數內使用'console.log'來查看'parmName'的輸入是什麼,如果'parmAttr'實際取得什麼? – SidOfc

回答

2

要檢查重複的自定義屬性值,你可以使用:

$j("["+parmName+"]").each(function(){ 
    var value = $j(this).attr(parmName); 
    if($j("["+parmName+"='"+ value + "']").length > 1) { 
     console.log('duplicate', parmName, 'for value', value); 
    } 
});