1

好的,所以这可能有点难以解释。我的函数被赋予了一个目标元素,并使用 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);
}

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

你们去有什么帮助吗?

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

4

1 回答 1

1

转义+/带有 1 个反斜杠和带有 2 个反斜杠的反斜杠

于 2013-08-25T01:37:10.980 回答