从段落Jquery中删除特定文本

时间:2014-06-29 21:34:46

标签: javascript jquery jquery-mobile

在下面的代码中有复选框,每次选中复选框时,都会添加该复选框值(有效)。但是当它取消选中时,它应该删除该复选框值。但相反,它只是添加两次值。如何添加和删除未选中的值?

以下是代码示例

//Looks for every checkbox
        $('#index '+ selected +' #cbFieldSet .icheck').each( function(i, name){
            console.log("#"+ $(name).attr("id"));
            if($('input[name='+$(name).attr('name')+']').attr('checked', false)){
            //checks what checkbox has been check. Gets that checkbox id
            $('#index '+ selected +' #cbFieldSet #'+ $(name).attr("id")).click( function(){
                // $("#cb-"+playerStart).click(function(){

                //console.log(i);
                console.log('yes');

                //add to popup box paragragh
                $('#popupDialog #info').append($(name).val());

        });

        }else if($('input[name='+$(name).attr('name')+']').attr('checked', true)){
            //checks what checkbox has been check. Gets that checkbox id
            $('#index '+ selected +' #cbFieldSet #'+ $(name).attr("id")).change( function(){
                // $("#cb-"+playerStart).click(function(){

                //console.log(i);
                console.log('yes');

                //add to popup box paragragh
                $('#popupDialog #info').remove( ":contains("+ $(name).val() +")" );

            });
        }

        });

2 个答案:

答案 0 :(得分:0)

根据使用的jquery版本,您可能需要.prop()而不是.attr()。 只有1.6之前的版本具有attr(" checked",true / false),即为布尔值。 .prop("已检查")应该做的伎俩

答案 1 :(得分:0)

此代码不易阅读,部分原因是您在"已检查"中都复制了相同的注释。和"未经检查"案例。你还遗漏了一些背景 - 缩进是关闭的,我不知道selected是什么。

无论如何 - 除了上面说的user3785863之外,当你想读设置属性值的形式.attr() >现有价值。

换句话说,$('input(...)').attr('checked', false)不会测试复选框是否已选中;它将其值设置为布尔值false,然后返回复选框本身,这意味着您的第一个if语句将始终运行,而第二个语句将永远不会运行。

所以,我认为你的意思是if ($(...).attr("checked") == "false")

(我认为你也有错误的方法,加上其他一些问题,但这可能会让你失败......)