未捕获的ReferenceError:$未在iterateId

时间:2018-03-06 06:07:04

标签: javascript jquery

我知道,基于这个错误很多可用的问题,但我的问题有点不同。

我正在使用每个循环来获取元素的id和文本,如下所示

function iterateId(id){

    $("input[id*='" + id + "']").each(function(){
        var idOfRadioButton = $(this).attr('id');
        var textOfRadioButton = $(this).closest("div").children("label").first().text();
        console.log(textOfRadioButton);
        console.log(idOfRadioButton);
    });

}

我通过使用for循环从数组传递id

window.radioButtonOrNot = function(inputArray){

    var array = inputArray;

    for (i = 0; i < array.length; i++) {
        console.log("Came " + array[i]);
        iterateId(array[i]);
    }

};

当我按照上述方法操作时,会收到错误Uncaught ReferenceError: $ is not defined at iterateId。任何人都知道我在做错的地方

修改

我也包含了jQuery。以下是工作方案

window.setText = function(id, text){

    if($("input[id$='" + id + "']").is(':visible')){
        $("input[id$='" + id + "']").val(text);
    }
};

1 个答案:

答案 0 :(得分:0)

freedomn-m所述,可能是我的代码在Jquery初始化之前运行。所以,我遵循了以下方法。 以下方法不是解决方案,但它是实现解决方案的另一种方法

I've used JavaScript instead of jQuery如下

var inputId = document.querySelectorAll("input[id*='" + id + "']");
for(i = 0; i < inputId.length; i++){
    console.log(inputId[i].id);

    if(document.getElementById(inputId[i].id) != null){
        console.log(document.querySelector('label[for*='+ inputId[i].id +']').innerHTML);
    }

}

现在一切正常......