jQuery - 根据其他属性值获取元素属性
jQuery - getting an element attribute based on other attribute value
我是 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));
非常感谢任何帮助,谢谢
一定要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>
您走在正确的轨道上。您的语句中只有一些小的语法错误,仅此而已。这是一个工作演示:
$(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>
我是 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));
非常感谢任何帮助,谢谢
一定要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>
您走在正确的轨道上。您的语句中只有一些小的语法错误,仅此而已。这是一个工作演示:
$(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>