Javascript 选择并显示特定数据值JQuery

Javascript 选择并显示特定数据值JQuery,javascript,jquery,html,Javascript,Jquery,Html,所以我有一个包含一些div的页面,这些div都有数据秩值 <div class="game-play-rank" data-rank"1"></div> <div class="game-play-rank" data-rank"2"></div> <div class="game-play-rank" data-rank"3"></div> etc... 等 在我的js中,我有一个代表个人得分的变量。我只想显示最接近

所以我有一个包含一些div的页面,这些div都有数据秩值

<div class="game-play-rank" data-rank"1"></div>
<div class="game-play-rank" data-rank"2"></div>
<div class="game-play-rank" data-rank"3"></div>
etc...
在我的js中,我有一个代表个人得分的变量。我只想显示最接近(但高于)人员得分的数据排名值

e、 g


var得分=4;
我打算做一些类似的事情

$current = null;
$(".game-play-rank").each(function() {
    if(this.data("rank") > score && this.data("rank") < current.data("rank"))
        $current = this;
});
$current=null;
$(“.game play rank”)。每个(函数(){
if(this.data(“rank”)>得分和this.data(“rank”)

但我认为执行each循环就是将“this”变成HTML,而我不能对其执行JQuery.data()函数。我应该如何处理这个问题?

使用
$(this.data(“rank”)
而不是
this.data(“rank”)
使用
$(this.data(“rank”)
而不是
this.data(“rank”)
使它成为
jquery
对象使用
$(this)
而不是
要使其成为
jquery
对象,请使用
$(此)
而不是
您可以使用与使用dom选择器相同的方法从dom节点创建jquery对象:

$('div').each(function(){
    var jQueryObject = $(this);
})
如果您只想支持较新的浏览器,还可以使用DOM节点的dataset属性:

var rank = this.dataset.rank;

您可以使用与使用dom选择器相同的方法从dom节点创建jQuery对象:

$('div').each(function(){
    var jQueryObject = $(this);
})
如果您只想支持较新的浏览器,还可以使用DOM节点的dataset属性:

var rank = this.dataset.rank;

您必须使用jQuery选择器调用它,否则它不是jQuery对象,这就是无法调用数据属性的原因

试试这个:

var current = null;
$(".game-play-rank").each(function() {
if($(this).data("rank") > score && $(this).data("rank") < current.data("rank"))
    current = $(this).data('rank');
});
var电流=null;
$(“.game play rank”)。每个(函数(){
如果($(this.data(“rank”)>得分和($(this.data(“rank”)<当前.data(“rank”))
当前=$(此).data('rank');
});

您必须使用jQuery选择器调用它,否则它不是jQuery对象,这就是无法调用数据属性的原因

试试这个:

var current = null;
$(".game-play-rank").each(function() {
if($(this).data("rank") > score && $(this).data("rank") < current.data("rank"))
    current = $(this).data('rank');
});
var电流=null;
$(“.game play rank”)。每个(函数(){
如果($(this.data(“rank”)>得分和($(this.data(“rank”)<当前.data(“rank”))
当前=$(此).data('rank');
});

美元。每个美元都将一个函数作为参数,该函数可以有两个参数,索引和每个参数的值

我的意思是:

$current = null;
$(".game-play-rank").each(function(i, val) {
    if($(val).data("rank") > score && $(val).data("rank") < current.data("rank"))
        $current = this;
});
$current=null;
$(“.game play rank”)。每个(函数(i,val){
如果($(val.data(“rank”)>分数和($(val.data(“rank”)<当前.data(“rank”))
$current=这个;
});

与使用“this”

The$相比,它可以根据您的需要更好地工作。每个函数都将一个函数作为参数,该函数可以有两个参数,分别是索引和值

我的意思是:

$current = null;
$(".game-play-rank").each(function(i, val) {
    if($(val).data("rank") > score && $(val).data("rank") < current.data("rank"))
        $current = this;
});
$current=null;
$(“.game play rank”)。每个(函数(i,val){
如果($(val.data(“rank”)>分数和($(val.data(“rank”)<当前.data(“rank”))
$current=这个;
});

比使用“this”

元素没有类作为
游戏等级
更好,可以随心所欲地工作。使用
$('[data rank!=''])
current
应该是jQuery包装的元素,并且应该具有
datarank
属性……很抱歉,我刚刚忘记在我的示例中添加这个属性。我删掉了我实际代码中的大部分内容,这样就不会太冗长了。它能工作吗?如果没有,请具体说明您面临的问题是什么?元素没有类作为
游戏等级
。使用
$('[data rank!=''])
current
应该是jQuery包装的元素,并且应该具有
datarank
属性……很抱歉,我刚刚忘记在我的示例中添加这个属性。我删掉了我实际代码中的大部分内容,这样就不会太冗长了。它能工作吗?如果没有,请具体说明您面临的问题?谢谢。非常感谢:)谢谢。非常感谢:)