变量中的运算符字符会停止jQuery定位

时间:2013-08-25 01:22:29

标签: javascript jquery class variables operator-keyword

好的,所以这可能有点难以解释。 我的函数被赋予一个目标元素,并使用innerHTML获取元素中显示的ID。然后该ID也出现在类的名称中,该类也必须是目标。但是,ID可以包含“+”,“/”或“\”字符,这可以阻止jQuery在变量中使用ID。

编辑:我忽略了提及,当我说ID时,这不是一个元素ID。它是一个用户ID,我可以用它来定位多个元素,因为它出现在类名和页面上。

以下是代码:

function goFilt(filtID) {
    var ptbf = document.getElementById("pc" + filtID);
    var ptbfIdc = ptbf.getElementsByClassName("hand");
    var ptbfId = ptbfIdc[0].innerHTML;
    ptbf.className = 'animated hinge';
    setTimeout(function () {
        $q("#pc" + filTar).animate({
            height: "1px"
        }, 500);
    }, 1000);
    setTimeout(function () {
        $q("#pc" + filTar).css("display", "none");
    }, 1500);
    setTimeout(function () {
        $q(".id_" + ptbfId).parent().parent().parent().parent().animate({
            opacity: 0
        }, 500);
        setTimeout(function () {
            $q(".id_" + ptbfId).parent().parent().parent().parent().animate({
                height: "1px"
            }, 500);
        }, 500);
    }, 1500);
    setTimeout(function () {
        $q(".id_" + ptbfId).parent().parent().parent().parent().css("display", "none");
    }, 2500);
}

所以说我们的身份证是VmOR + MU8。 我们通过使用类名“hand”来调用元素并获取内部html,然后将其保存为变量ptbfId。 然后我们需要使用类id_VmOR + MU8来标记元素,但是我们不能使用$ q(“。id_”+ ptbfId),因为ID中的“+”会停止工作。 那是我的问题。没有正则表达式的愚蠢周期,我想不出如何解决这个问题。 ID也需要在该点之后可用,因此如果答案是交换临时字符的坏字符,则需要快速互换。

你们有什么帮助吗?

编辑2:示例小提琴:http://jsfiddle.net/RpVr2/

1 个答案:

答案 0 :(得分:1)

使用1个反斜杠转义+/,使用2个反斜杠反斜杠