如何在函数内使jquery id选择器等于this?

时间:2014-08-02 02:31:32

标签: javascript jquery scope

为什么在尝试制作$("#select-province") that.value时出现错误?

function updateCities(that){
   console.log(that.value);
}

$(document).ready(function(){
      updateCities($("#select-province"));
});

4 个答案:

答案 0 :(得分:3)

您需要将jquery对象转换为javascript object.use:

function updateCities(that){
  console.log(that.value);
}

$(document).ready(function(){
  updateCities($("#select-province")[0]);
});

答案 1 :(得分:2)

选择1,但不能同时选择两者:

  • 传递DOM对象,而不是jQuery对象

    function updateCities(that){
        console.log(that.value);
    }
    
    $(document).ready(function(){
        updateCities(document.getElementById('select-province'));
    });
    
  • 因为您正在传递jQuery对象,所以使用库函数来正确检索值:

    function updateCities($that){
        console.log($that.val());  // or $that.prop('value')
    }
    
    $(document).ready(function(){
        updateCities($("#select-province"));
    });
    

    请注意,我将that的名称更改为$that以反映它是jQuery对象。

答案 2 :(得分:0)

使用jQuery时,尽可能使用jQuery。

function updateCities(that){
  console.log($(that).val());
}

$(document).ready(function(){
  updateCities($("#select-province"));
});

答案 3 :(得分:0)

使用jquery $(that).val()工作正常。

function updateCities(that){
  console.log($(that).val());
}

$(document).ready(function(){
      updateCities($("#select-province"));
});

请参阅小提琴链接http://jsfiddle.net/5AX6p/1/