JQuery для проверки на дублирующиеся идентификаторы в DOM

Использование Ramda,

npm установка ramda

import R from 'ramda'
var objs = [ 
    { first_nom: 'Lazslo', last_nom: 'Jamf'     },
    { first_nom: 'Pig',    last_nom: 'Bodine'   },
    { first_nom: 'Pirate', last_nom: 'Prentice' }
];
var ascendingSortedObjs = R.sortBy(R.prop('last_nom'), objs)
var descendingSortedObjs = R.reverse(ascendingSortedObjs)
100
задан Simon_Weaver 4 February 2009 в 05:08
поделиться

5 ответов

Следующее зарегистрирует предупреждение консоли:

// Warning Duplicate IDs
$('[id]').each(function(){
  var ids = $('[id="'+this.id+'"]');
  if(ids.length>1 && ids[0]==this)
    console.warn('Multiple IDs #'+this.id);
});
205
ответ дан Jess Bowers 5 November 2019 в 11:51
поделиться

Почему Вы только не проверяете свой HTML?

Двойной идентификатор не позволяется, и обычно Вы получите ошибку анализа.

8
ответ дан Natrium 5 November 2019 в 11:51
поделиться

Это могло бы добиться цели Его, предупредит все идентификаторы элементов с дубликатами.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
    	<head>
    		<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
    		<script type="text/javascript">
    			function findDupes()
    			{
    			  var all = $("*");
    			  for(var i = 0; i < all.length; i++)
    			  {
    			      if (all[i].id.length > 0 && $("[id='" + all[i].id + "']").length > 1) alert(all[i].id);
    			  }
    			}
    		</script>
    	</head>
    	<body onload="findDupes()">
    		<div id="s"></div>
    		<div id="f"></div>
    		<div id="g"></div>
    		<div id="h"></div>
    		<div id="d"></div>
    		<div id="j"></div>
    		<div id="k"></div>
    		<div id="l"></div>
    		<div id="d"></div>
    		<div id="e"></div>
    	</body>
    </html>
2
ответ дан Syed mohamed aladeen 5 November 2019 в 11:51
поделиться

Необходимо попробовать Блок проверки допустимости HTML (расширение Firefox). Это определенно скажет Вам, что страница имеет дублирующиеся идентификаторы и многое другое.

12
ответ дан Ionuț G. Stan 5 November 2019 в 11:51
поделиться

Еще один способ поиска дубликатов, но это добавит класс ошибки, поэтому он будет иметь красный текст :

// waits for document load then highlights any duplicate element id's
$(function(){ highlight_duplicates();});

function highlight_duplicates() {
  // add errors when duplicate element id's exist
  $('[id]').each(function(){ // iterate all id's on the page
    var elements_with_specified_id = $('[id='+this.id+']');
    if(elements_with_specified_id.length>1){
      elements_with_specified_id.addClass('error');
    }
  });


  // update flash area when warning or errors are present
  var number_of_errors = $('.error').length;
  if(number_of_errors > 0)
    $('#notice').append('<p class="error">The '+number_of_errors+
      ' items below in Red have identical ids.  Please remove one of the items from its associated report!</p>');
}
4
ответ дан 24 November 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: