1

我没有找到任何关于我遇到的奇怪问题的问题。基本上我已经设置了一个用于输入用户电话号码和分机的表单。我制作了一个添加按钮,以便可以在表单中添加更多电话/分机。我已经在表单和 SQL 代码中添加了正常工作。问题是删除表单和 SQL 代码。您可以在代码中看到每个新条目都有自己的“删除”链接,其中包含该特定条目的 DIV 信息。它进入一个“删除”功能,将其取出。它适用于表单,但它对 SQL 代码没有任何作用。我为 SQL 代码创建了类似的东西,所以我有一个可以删除它的函数。只是为了测试我输入了与表单相同的“删除”href,如果我单击 SQL 部分的链接,它会删除它。所以我试图找到一种方法来单击表单部分上的“删除”链接,并让它取出该特定表单和相应的 SQL 代码。我玩弄了尝试从 DIV 表单中获取与 SQL 部分的 DIV 名称匹配的名称的想法,但我似乎无法让它工作。

    ////
    //-------------Add Phone Form----------------
    ////

    function addElement() { 

    var ni = document.getElementById('phoneDiv'); 
    var numi = document.getElementById('theValue'); 
    var num = (document.getElementById('theValue').value -1 + 2); 
    numi.value = num; 
    var newdiv = document.createElement('div'); 
    var divIdName = 'phoneDiv'+num+''; 
    var sqlDivIdName = 'SQL'+divIdName+'';
    newdiv.setAttribute('id',divIdName); 
    newdiv.innerHTML = '<input type=hidden id=' + num + ' name='+sqlDivIdName+' value='        + num + '><a href="javascript:remove('+divIdName+')">Remove</a> <tr><td>Phone Number:</td>  <td> <input type="text" name="phone' + num + '" maxlength="10"> </td></tr> <tr>  <td>Extension:</td><td> <input type="text" name="ext' + num +'" maxlength="5" value="00000">'; 
    ni.appendChild(newdiv); 

    javascript:addElement2(); 
    } 

    ////
    //-------------Add Phone SQL----------------
    ////

    function addElement2() {

var ni = document.getElementById('SQLphoneDiv'); 
    var numi = document.getElementById('theValue2'); 
    var num = (document.getElementById('theValue2').value -1 + 2); 
    numi.value = num; 
    var newdiv = document.createElement('div'); 
    var divIdName = 'SQLphoneDiv'+num+''; 
    newdiv.setAttribute('id',divIdName); 
    newdiv.innerHTML = '<input type=hidden id=' +num+ ' value=' +num+ '><a         href="javascript:removeSQL('+divIdName+')">Remove</a> $insert_phone = "INSERT INTO phone (Phone_Cust_ID,Phone_Numb,Ext) VALUES (\'$cust_ID[0]\',\'".$_POST[\'phone' +num+ '\']."\',\'".$_POST[\'ext' +num+ '\']."\')"; $add_phone = mysql_query($insert_phone);'; 
    ni.appendChild(newdiv); 
    }


    ////
    //-------------Remove Phone Form----------------
    ////

    function remove(xy) {
    var ni = document.getElementById('phoneDiv'); 


    ni.removeChild(xy);

    }


    ////
    //-------------Remove Phone SQL----------------
    ////

    function removeSQL(yz) {
    var ni = document.getElementById('SQLphoneDiv'); 
    ni.removeChild(yz);

    }

我尝试只使用一个删除函数而不是两个,或者让第一个删除函数触发第二个,但我认为问题是我无法获取关于我的孩子的 SQL 部分的 +divName+ 信息我试图删除。

我对 JavaScript 很陌生,所以我确信 jQuery 有一个非常简单的方法可以做到这一点,但是 jQuery 现在让我感到困惑,因为我仍然试图单独掌握 JavaScript 中的大部分概念。感谢我能得到的任何提示。

另外,我知道 SQL 并不真正正确,但我现在并不担心。一旦我让这个功能工作,我就可以清理一切。

弥敦道

4

3 回答 3

0

addElement您可以通过在函数中执行以下操作将 SQLphoneDiv 元素 id 存储在 phoneDiv 元素中

newdiv.sqlDivId = sqlDivIdName

然后在你的remove功能做

var sqlDiv = document.getElementById(xy.sqlDivId);
var sqlNi = document.getElementById('SQLphoneDiv');
sqlNi.removeChild(sqlDiv);
于 2012-04-06T19:08:59.937 回答
0

我知道您正在寻找一个纯 JavaScript 解决方案,但是我想我会发布一个 jQuery 解决方案仅供参考。无论如何,当使用 jQuery 时,最好将函数加载到文档就绪函数中......就像这样......

$(document).ready(function(){


});

这基本上就是它所读的。在运行该函数之前,它会等待文档完全加载。

从那里你可以做一个像这样的点击功能......

示例 HTML

<a href="" id="mylink">My Link</a>

jQuery

 $('#mylink').click(function(){

    });

然后删除您可以使用的链接.remove()......所以所有这些看起来像这样......

$(document).ready(function(){

$('#mylink').click(function(){
   $('#mylink').remove();
});

});

要使用一键删除多个 IDS,您可以这样做...

$('#mylink, #mylink2, #mydiv').remove();

我怀疑这是您正在寻找的答案。但是,当您决定开始使用 jQuery 时,您将学会爱上需要多少代码来完成需要大量代码的工作。

于 2012-04-06T19:22:27.847 回答
0

这么久了,不想看了。您想通过 id 删除元素吗?这个功能可以工作。

function removeById(id) {
    var toremoved = document.getElementbyId(id);
    toremoved.parentNode.removeChild(toremoved);
}
于 2012-04-06T19:24:16.717 回答