2016-01-26 19 views
0

我有一個函數,如果調用,將更新另一個對象,如果它存在。事情是,當頁面被創建時,id是未知的。動態查找jQuery元素如果存在

因此,舉例來說,我的繼承人代碼:

$('.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:

<input class='dimmerSlider' type='range' id='3' value='4' min='0' max='15' step='1' data-highlight='true' data-itemID='3'/> 

錯誤:

Uncaught TypeError: $(...).slider is not a function

+0

使用合適的報價,'$(「#$ this.attr( 「data-itemID」)「)。val(15);'=>'$(」#$ this.attr('data-itemID')「)。val(15);' – Tushar

回答

3

我猜你想建立一個字符串使用attibute

$("#" + $this.attr('data-itemID')).val(15); 

或使用數據,而不是ATTR

$("#" + $this.data('itemID')).val(15); 

要回答你的第二個問題,如果該元素不能被發現。

如果您選擇一個帶有jQuery的元素並且它不存在,那麼當您針對它運行方法時,它將被忽略。如果你需要知道它不存在比你可以檢查長度

var x = $(".mySelector"); 
if (!x.length) { //aka x.length===0 
    console.log("not found"); 
} 
+0

我更新了原始文章...它似乎無法找到函數...'未捕獲的TypeError:$(...)。滑塊不是一個函數' –

+0

那麼是包含JavaScript的滑塊插件? – epascarello

+0

是的...它似乎工作,如果我硬編碼,但不是與動態代碼....這個代碼拉this.object或字符串?我只需要字符串值,而不是目前在函數 –