jquery删除前置元素不起作用

时间:2012-06-08 19:51:30

标签: javascript jquery

基本上,我想要有两个功能。第一个元素包含一个元素div,它包含一些ajax数据和一个可以触发close函数的按钮。第一个函数执行我想要的所有操作,除非我在应用onclick属性时遇到问题,该属性将在单击时触发remove函数。

但与此无关,我无法让remove function工作。

如果你能帮助我做得更好,我将不胜感激。

function displayCrRef(refPid, refFs, pidOfReferringP) {

    $.get("crRefParaExtract.php", {
        pid: refPid,
        fs: refFs
    }, function(data) {

        $("#pwrap_" + pidOfReferringP).prepend("<div id='#crRef_" + refPid + "' style='float: left;  width: 350px; margin-right: 60px; padding: 10px; background-color: #E6EDE8'>" + "<a id='crossRefRemoveButton'>Return to normal text</a>" + data + "</div>");


    });
    var rmFxnParam = "'" + refPid + "'";
    $("#crossRefRemoveButton").attr("onclick", "removeCrossRef(" + rmFxnParam + ")");
    $("#" + pidOfReferringP).css({
        float: 'left',
        width: '425px'
    });
    $("#menu_" + pidOfReferringP).css({
        float: 'none',
        clear: 'both'
    });
   }


   function removeCrossRef(refPid) {
       $("#crRef_" + refPid).remove();

   }​

2 个答案:

答案 0 :(得分:2)

开始使用#的ID无效。我相信你把id值与jQuery的CSS选择器混淆了。

[hashTag] + [ID of Element] = CSS ID Selector

这应该有效:

function displayCrRef(refPid, refFs, pidOfReferringP) {

    ...
    // Remove the hash tag here: id='crRef_" + refPid + "'
    $("#pwrap_" + pidOfReferringP).prepend("<div id='crRef_" + refPid + "' style='float: left;  width: 350px; margin-right: 60px; padding: 10px; background-color: #E6EDE8'>" + "<a id='crossRefRemoveButton'>Return to normal text</a>" + data + "</div>");
    ...

}

function removeCrossRef(refPid) {
    $("#crRef_" + refPid).remove();
}​

其他信息

  

ID和NAME令牌必须以字母([A-Za-z])开头,可能是   后跟任意数量的字母,数字([0-9]),连字符(“ - ”),   下划线(“_”),冒号(“:”)和句点(“。”)。

参考:http://www.w3.org/TR/html4/types.html

答案 1 :(得分:-3)

$("#crossRefRemoveButton").addEventListener('click',function(){
   removeCrossRef(rmFxnParam);
});