2016-01-21 39 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); 
    } 
});