首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果存在jquery元素,则动态查找

如果存在jquery元素,则动态查找
EN

Stack Overflow用户
提问于 2016-01-26 05:34:58
回答 2查看 71关注 0票数 0

我有一个函数,如果被调用,它将更新另一个对象。问题是,当创建页面时,id是未知的。

例如,下面是我的代码:

代码语言:javascript
运行
复制
$('.slides').on("slidestop", function() {
                    $this = $(this);
                    $.ajax({
                        url: "action.php?event=ITEM "+$this.attr("data-itemID") + " " + this.value+"&itemID="+$this.attr("data-itemID"),
                        type:'POST',
                        success: function(result){
                            //update brightness slider if it exists
                            $("#sl" + $this.attr('data-itemID')).val(15);
                            $("#sl" + $this.attr('data-itemID')).slider("refresh");
                        },
                    });
                });

html:

代码语言:javascript
运行
复制
 <input class='dimmerSlider' type='range' id='3' value='4' min='0' max='15' step='1' data-highlight='true' data-itemID='3'/>

错误:

Uncaught:$(.).slider不是函数

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-26 05:53:11

代码语言:javascript
运行
复制
$("#$this.attr('data-itemID')").val(15);

我猜你想用这个词来构建一个字符串

代码语言:javascript
运行
复制
$("#" + $this.attr('data-itemID')).val(15);

或者使用数据代替attr

代码语言:javascript
运行
复制
$("#" + $this.data('itemID')).val(15);

如果找不到元素,请回答第二个问题。

如果您使用jQuery选择一个元素,并且它不存在,则在针对它运行方法时,它将被忽略。如果您需要知道它不存在,则可以检查长度。

代码语言:javascript
运行
复制
var x = $(".mySelector");
if (!x.length) {  //aka x.length===0
   console.log("not found");
}
票数 3
EN

Stack Overflow用户

发布于 2016-01-26 05:58:31

此外,元素不一定存在,我如何检查它呢?

尝试使用属性等于Selector [name="value"].is()

代码语言:javascript
运行
复制
  var elem = $("[id=" + $this.attr("data-itemID") + "]");
  if (elem.is("*")) {
    // do stuff
    elem.val(15)
    .slider("refresh");
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35007591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档