Как я могу получить класс div, щелкнув другой div?

#javascript #html #click

#javascript #HTML #нажмите

Вопрос:

У меня есть 2 div, в обоих div у меня один и тот же идентификатор, но другой класс. При нажатии на один div мы можем получить его идентификатор атрибута.все в порядке.. Этот идентификатор такой же для другого div. Как я могу получить класс этого 2-го div, используя этот идентификатор?

 <div class="oneclass" id="same">Hi this is the first div</div>
<div class="secondclass" id="same">Hi This is the second div</div>
<script type="text/javascript">
      $("div.secondclass").click(function () {
         pos=$(this).attr('id');
         alert("the id of the 2nd div is =" pos);
        });
</script>
  

Комментарии:

1. Разве два <div> элемента не должны иметь одинаковые, class но разные id значения?

2. Не создавайте элементы с одинаковыми идентификаторами. Они должны быть уникальными на странице.

Ответ №1:

У вас не может быть двух элементов с одинаковым идентификатором подобным образом. Это недопустимый HTML-документ, и любая проверка / манипуляция DOM, основанная на дублированных атрибутах id, вероятно, будет иметь непредсказуемые результаты в разных браузерах.

Тем не менее, если бы мне пришлось быстро и грубо отредактировать приведенный выше код, чтобы выполнить то, что вы просите, я бы в итоге получил что-то вроде этого:

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
<div class="firstclass" id="firstid">Hi this is the first div</div>
<div class="secondclass" id="secondid">Hi This is the second div</div>
<script type="text/javascript">
      $("div.secondclass").click(function () {
         firstclass=$('#firstid').attr('class');
         alert("the class of the 1st div is =" firstclass);
        });
</script>
  

Возможно, существует более краткий и / или более типичный способ сделать это с помощью jQuery, чем приведенный выше jQuery, но приведенный выше работает и достаточно близок к вашему исходному коду, чтобы вы могли очень легко отслеживать изменения.

Комментарии:

1. Спасибо за ответ, но как я могу решить это …? Как я могу получить класс div1, щелкнув div2, если у меня другой идентификатор ..??

Ответ №2:

В HTML двум разным элементам не разрешается иметь одинаковое значение id . Дайте второму div другой id .

Комментарии:

1. Спасибо за ответ.. Могу ли я получить другим способом …?? тот же класс и другой идентификатор, чтобы получить класс div1, щелкнув div2 ..??