Опять как удалить див по которому кликнул
<div id="divResult" style=" color:red;"> <div id="avatar"></div> <div id="info"></div> <div id="coment" class="divRecord"></div> <p> <input type="button" name="submit" onclick="javascript:addRecord5(984)" value="Отправить" return="" false=""/> </p> </div> <div id="clear"/> <div id="divResult" style=" color:red;"> <div id="avatar"></div> <div id="info"></div> <div id="coment" class="divRecord"></div> <p> <input type="button" name="submit" onclick="javascript:addRecord5(985)" value="Отправить" return="" false=""/> </p> </div> <div id="clear"/> так выглядит код js кнопки delll = + records[i].id; var cnopca = "<input type='button' name='submit' onclick='javascript:addRecord5("+ records[i].id +")' value='Отправить' return false>"; var del_st = createElement("p"); del_st.innerHTML = cnopca; divinfo.appendChild(del_st); divResult.appendChild(divinfo); а так код js удаления дива var del = document.getElementById('info'); var avatar_del = document.getElementById('avatar'); var parent = document.getElementById('divResult'); parent.removeChild(del); parent.removeChild(avatar_del); Проблема в том что удаляется всегда первый элемент а мне надо чтобы удалялся id="avatar" и id="info" возле которого нажата кнопка проблема в том что я не могу поставить this в onclick='javascript:addRecord5("+ records[i].id +")' так как передаю id значение + records[i].id + Подскажите как обойти проблему |
<div onclick="this.parentNode.removeChild(this)">kjasdjh asdjkh</div> |
Хорошо но как мне this в эту кнопку прикрутить
<input type='button' name='submit' onclick='javascript:addRecord5("+ records[i].id +")' value='Отправить' return false>"; |
alex2012,
что за дурная привычка писать onclick='javascript:.. |
как правильно?
|
alex2012,
простой вызов функции как в примере <input type='button' value="Удали меня" onclick="rem(this)"> <script type='text/javascript'> function rem(th){ th.parentNode.removeChild(th); } </script> |
alex2012, первая проблема уже в том, что по вашему описанию у вас куча элементов с одинаковыми id...чего быть не должно
к тому же что такое <div id="clear"/>? кучу div-ов открываете, но не закрываете? |
var cnopca = '<input type="button" name="submit" onclick="addRecord5(\'"+ records[i].id +"\', this)" value="Отправить">'; |
<div id="divResult" style=" color:red;"> <div id="avatar"></div> <div id="info"></div> <div id="coment" class="divRecord"></div> <p> <input type="button" name="submit" onclick="document.body.removeChild(this.parentNode.parentNode);" value="Отправить"> </p> </div> <div id="divResult" style=" color:red;"> <div id="avatar"></div> <div id="info"></div> <div id="coment" class="divRecord"></div> <p> <input type="button" name="submit" onclick="document.body.removeChild(this.parentNode.parentNode);" value="Отправить"> </p> </div> буит робить но без всяких <div id="clear"/> |
если вы имеете виду id="iavatar"и id="info" то они выводятся в цикле из базы данных. И как они могут быть разные в этом случае ?
|
спасибо сейчас попробую
|
<div id="divResult" style=" color:red;"> <div id="avatar"></div> <div id="info">Инфо1</div> <div id="coment" class="divRecord"></div> <p> <input type="button" name="submit" onclick="addRecord5(984,this)" value="Отправить" return="" false=""/> </p> </div> <div id="clear"/> <div id="divResult" style=" color:red;"> <div id="avatar"></div> <div id="info">Инфо</div> <div id="coment" class="divRecord"></div> <p> <input type="button" name="submit" onclick="addRecord5(987,this)" value="Отправить" return="" false=""/> </p> </div> <div id="clear"/> <script type="text/javascript"> function addRecord5(Num,ThiS) { var del= ThiS.parentNode.parentNode.getElementsByTagName('div')[1] del.parentNode.removeChild(del); } </script> |
Цитата:
'id="iavatar"+i' Deff, неробит :blink: |
Цитата:
|
Цитата:
|
решение IE8+
<div id="divResult" style=" color:red;"> <div id="avatar"></div> <div id="info">Инфо</div> <div id="coment" class="divRecord"></div> <p> <input type="button" name="submit" onclick="addRecord5(984,this)" value="Отправить" return="" false=""/> </p> </div> <div id="clear"/> <div id="divResult" style=" color:red;"> <div id="avatar"></div> <div id="info">Инфо</div> <div id="coment" class="divRecord"></div> <p> <input type="button" name="submit" onclick="addRecord5(987,this)" value="Отправить" return="" false=""/> </p> </div> <div id="clear"/> <script type="text/javascript"> function addRecord5(Num,ThiS) { var del= ThiS.parentNode.parentNode.querySelector('#info'); del.parentNode.removeChild(del); } </script> |
Поправил пст #12
|
сделал так
взял то что мне посоветовал devote var cnopca = '<input type="button" name="submit" onclick="addRecord5(\'"+ records[i].id +"\', this)" value="Отправить">'; и Dim@ th.parentNode.removeChild(th); работает правильно единственное что не так, это то что исчезает только кнопки. что не так я сделал ? |
alex2012,
у вас parentNode = тег P parentNode.parentNode = тег div с id="divResult" |
сделал так не срабатывает
th.parentNode.parentNode.removeChild(th); |
alex2012,
Пробуйте пост 12 |
Раз по клику можно сделать через target
<div class="divResult" style=" color:red;"> <div class="avatar">11</div> <div class="info">12</div> <div id="coment" class="divRecord">13</div> <p> <input type="button" name="submit" onclick="javascript:addRecord5(984)" value="Отправить" return="" false=""/> </p> </div> <div id="clear"/> <div class="divResult" style=" color:red;"> <div class="avatar">11</div> <div class="info">12</div> <div id="coment" class="divRecord">13</div> <p> <input type="button" name="submit" onclick="javascript:addRecord5(984)" value="Отправить" return="" false=""/> </p> </div> <div id="clear"/> <script> document.body.onclick = function (e) { e = e || event; var target = e.target || e.srcElement; if (target.name == 'submit') { var parent = target.parentNode.parentNode; if (parent.children[0].className == 'avatar') { parent.removeChild(parent.children[0]); } if (parent.children[0].className == 'info') { parent.removeChild(parent.children[0]); } return; } if (target.className == 'info' || target.className == 'avatar') { target.parentNode.removeChild(target); } } </script> PS: что именно нужно удалять возможно не понял, так как не вчитывался |
Спасибо всем всё заработало
|
Только один вопрос
в строке var del= ThiS.parentNode.parentNode.getElementsByTagName('div')[1] вот это что означает getElementsByTagName('div')[1] так как я сделал вот так var del= th.parentNode.parentNode; и заработало |
alex2012,
Хм - выложите полную функцию откель мну зает - что есть th Если пользоваться исходной - как есть - тож должно работать |
alex2012,
var del= ThiS.parentNode.parentNode.getElementsByTagName('div')[1] ссылка на div с id="info" var del= th.parentNode.parentNode;ссылка на div с id="divResult" |
Часовой пояс GMT +3, время: 09:57. |