0

有什么方法可以删除触发元素的 ID 或文本。现在在按钮上触发添加/删除选定的文本,但是如果我们点击了多个,当我第二次点击选定的按钮时,点击按钮的文本会添加到列表中,从列表中删除所有文本,但我只需要删除选定的内容。任何解决方案?

jQuery

$(document).ready(function() {

    var txt = "";
    $("#_button").children().toggle(function() {

        txt = $(this).text();
        $(this).css("background", "blue");
        $("#place").append("<td>" + txt + "</td>");

    }, function() {

        $("#place").children(this).remove();
        $(this).css("background", "red");

    });
});

HTML

<ul id="_button">
     <li id="a" value="30">a</li>
     <li id="b" value="30">b</li>
     <li id="c" value="30">c</li>
</ul>
<table>
     <tr id="place">
     </tr>
</table>
4

4 回答 4

1

您可以查找正在切换的元素的文本,并且仅td使用选择器删除与以下代码对应的文本:contains()

改变这个

$("#place").children(this).remove();

$("#place").children(':contains('+$(this).text()+')').remove();

演示:http: //jsfiddle.net/joycse06/gptG5/1/

阅读更多:contains() Selector

于 2012-06-24T12:54:05.420 回答
0

您可以使用 jquery 包含选择器来选择具有与单击的列表项匹配的文本的表格单元格:

txt=$(this).text();
$("#place").children(":contains("+ txt +")").remove();

我已经为它创建了一个小提琴来展示它在这里工作。

于 2012-06-24T12:54:30.880 回答
0

像这样的东西?

$(document).ready(function() {
var txt="";        
$("#_button li").toggle(function(){
         txt=$(this).text();
         $(this).css("background","blue"); 
         var id = $(this).attr('id');       
         $("#place").append("<td class="+id+">"+txt+"></td>");
},function() {
    var id = $(this).attr('id');        
    $("#place").find('td.' + id).remove();
    $(this).css("background","red");
});
});

演示

于 2012-06-24T12:55:56.297 回答
0

下面的代码将做到这一点。这是要玩的 JSFiddle:http: //jsfiddle.net/leniel/JqZc6/

$(document).ready(function()
{
    var txt = "";        

    $("#_button").children().toggle(function()
    {
        txt = $(this).text();

        $(this).css("background","blue");  

        $("#place").append("<td>"+txt+"</td>");

    },function()
    {
        txt = $(this).text();

        $("#place").children("td:contains('"+txt+"')").remove();

        $(this).css("background","red");
    });
});
于 2012-06-24T13:06:15.803 回答