jQuery - получение атрибута элемента на основе другого значения атрибута - PullRequest
0 голосов
/ 03 сентября 2018

Я новичок в jQuery .. У меня есть следующий HTML-div, содержащий несколько ссылок, каждая с несколькими атрибутами данных

<div class="image-gallery">
j = 0;  
    @foreach (var image in @Model.Images)
    {
        <a class="secondary-img" href="..." data-img-sq-nr="@j" data-colorID="@image.ColorId" ... >
        <img .../>
        </a>
        j++;
    }

</div>

В скрипте jQuery мне нужно найти элемент с конкретным data-colorID и получить его data-img-sq-nr, я пытался что-то вроде этого, но этот обзор не работает

var seq = $('.image-gallery a[data-colorID='some-other-variable'].attr(data-img-sq-nr));

любая помощь высоко ценится, спасибо

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Вы на правильном пути. В вашем утверждении всего несколько небольших синтаксических ошибок, вот и все. Вот рабочая демонстрация:

$(function() {
  var seq = $(".image-gallery a[data-colorID='A']").attr("data-img-sq-nr");
  console.log(seq);
  var seq2 = $(".image-gallery a[data-colorID='B']").attr("data-img-sq-nr");
  console.log(seq2);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="image-gallery">
  <a class="secondary-img" href="#" data-img-sq-nr="0" data-colorID="A">Item 1</a>
  <br/>
  <a class="secondary-img" href="#" data-img-sq-nr="1" data-colorID="B">Item 2</a>
</div>
0 голосов
/ 03 сентября 2018

Должно ли это быть JQuery? Это так просто в нативном Javascript:

const fooValue = 'foo'
const div = document.querySelector(`[data-foo=${fooValue}]`);

console.log(div.dataset.bar);
<div data-foo="foo" data-bar="baz"></div>
<div data-foo="foo2" data-bar="baz2"></div>

JQuery также очень прост:

const fooValue='foo';

const div =  $('[data-foo=' + fooValue + ']')
console.log(div.data('bar'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-foo="foo" data-bar="baz"></div>
<div data-foo="foo2" data-bar="baz2"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...