使用变量作为jQuery选择器

时间:2016-02-15 08:21:46

标签: javascript jquery html jquery-selectors

我正在尝试将变量用作jQuery选择器,但它在控制台中输出错误:

  

错误:语法错误,无法识别的表达式:#jquery.2.1.4.min.js

有没有人解释为什么会这样?

function FileSelected(file) {
    var imgId = RoxyUtils.GetUrlParam('img');
    $(window.parent.document).find("#" + imgId).attr('src', file.fullPath);
    $(window.parent.document).find("#" + imgId).next().val(file.fullPath);
    window.parent.closeCustomRoxy();
}

3 个答案:

答案 0 :(得分:0)

如果你可以改变:

var imgId = '#' + RoxyUtils.GetUrlParam('img').toString(); //append # in the image ID, and change to string, if returning an integer.
$(window.parent.document).find(imgId).attr('src', file.fullPath);
$(window.parent.document).find(imgId).next().val(file.fullPath);

然后,它应该工作。

让我知道

答案 1 :(得分:0)

刚添加一个if else以确保imgId不为空。

function FileSelected(file) {
            var imgId = RoxyUtils.GetUrlParam('img');
            if(imgId.trim().length >0){
                   $(window.parent.document).find("#" + imgId).attr('src', file.fullPath);
                   $(window.parent.document).find("#" + imgId).next().val(file.fullPath);
                   window.parent.closeCustomRoxy();
            }
            else{
              console.log("the value of imgId is : " + imgId);
            }           
        }

确保你的imgId没有'#'它的价值。

答案 2 :(得分:-1)

使用context-parameter,您可以尝试使用以下方式....

function FileSelected(file){
 /**
 * file is an object containing following properties:
 * 
 * fullPath - path to the file - absolute from your site root 
*/
 var imgId= RoxyUtils.GetUrlParam('img');
 $("#"+imgId,window.parent.document).attr('src', file.fullPath);
 $("#"+imgId,window.parent.document).next().val(file.fullPath);

 window.parent.closeCustomRoxy();
}