0

所以我有一个问题:我需要从一个标签到另一个标签中删除“信息”,包括它之间的文本。

所以在html中的某个地方是:

<input type="radio" rel="1" value="Surname1" name="lastnames">Surname1<br>
<input type="radio" rel="2" value="Name2" name="lastnames">Name2<br>
<input type="radio" rel="3" value="lol" name="lastnames">lol<br>
<input type="radio" rel="4" value="lol2" name="lastnames">lol2<br>

例如:

var current_id = $('input:checked:radio').attr('rel');
$.get('index.php?delete_by_id='+current_id);
$("input:radio[rel='"+current_id+"']").remove();

所以,在 GET 到 php 发送后,我需要从收音机列表中删除已删除的项目。输入一切正常,但在他旁边有名字我有问题......

PS。我知道,这种情况很愚蠢,但我没有时间重写它,直到明天(考试)

4

3 回答 3

1

span元素包裹标签。

<input type="radio" rel="1" value="Surname1" name="lastnames"><span>Surname1</span><br>
<input type="radio" rel="2" value="Name2" name="lastnames"><span>Name2</span><br>

然后在删除时,获取下一个跨度并将其删除

var item=$('input:checked:radio');

var current_id = item.attr('rel');
$.get('index.php?delete_by_id='+current_id,function(data){
   item.remove();
   item.next("span").remove();
});

为删除/更新功能保留 HttpPost 操作始终是一个好习惯。否则,如果他们知道项目 ID,任何人都可以从您的数据库中删除一条记录,只需在浏览器中使用这些查询字符串执行您的页面。

于 2012-06-04T14:00:57.370 回答
1

不确定您正在尝试做什么和/或为什么它不起作用,但请考虑编写如下代码:

var $selected_radio = $('input:radio:checked'); // store element reference
$.get('index.php?delete_by_id=' + $selected_radio.attr('rel'), function() {
    // use a callback function to only remove if code succeeds
    $selected_radio.remove();
});

编辑:回首往事,我看到您想删除输入及其标签。您只需要将您的 HTML 修复为实际应有的样子:

<label>
    <input type="radio" rel="1" value="Surname1" name="lastnames"> Surname1
</label>

这使得 jQuery 中的删除代码看起来像:

$selected_radio.closest('label').remove();
于 2012-06-04T14:01:56.270 回答
0

我通常总是使用标签来显示连接到单选按钮的文本:

<input id="radio1" type="radio" rel="1" value="Surname1" name="lastnames"><label for="radio1">Surname1</label><br>
<input id="radio2" type="radio" rel="2" value="Name2" name="lastnames"><label for="radio2>Name2</label><br>
<input id="radio3" type="radio" rel="3" value="lol" name="lastnames"><label for="radio3">lol</label><br>
<input id="radio4" type="radio" rel="4" value="lol2" name="lastnames"><label for="radio4">lol2</label><br>

然后你可以在你的javascript代码中这样做:

var current_rel = $('input:checked:radio').attr('rel'),
    current_id = $('input:checked:radio').attr('id');
$.get('index.php?delete_by_id='+current_rel);
$('#' + current_id + ', label[for="' + current_id + '"]).remove();
于 2012-06-04T14:07:15.387 回答