更改单击按钮的按钮值

时间:2010-02-15 12:37:21

标签: jquery

在插入新的<li>时,我必须将单击的按钮的值设置为“删除”。我怎样才能做到这一点?

使用实际代码,它只能运行一次,并且在添加其他列表时,该按钮不再具有值“删除”。

$("#mylist :button").click( function() { 
    var text = $(this).val(); 

    if (text == "Delete") { 
        $(this).parent().remove(); 
    } else { 
        $(this).val("Delete"); 
    }
});

$("#mylist li:last-child").live('click', function() { 
    $(this).parent().append('<li>' + '<input type = "textbox">' + 
        '<input type = "button" value= "Save">' + '</li>');
});

<div>
    <ul id="mylist">
        <li id="1">1<button id="Button3">Delete</button> </li> 
        <li id="2">2<button id="Button2">Delete</button></li> 
        <li id="3">3<button id="another_entry">Save</button></li>
    </ul>

3 个答案:

答案 0 :(得分:3)

使用text()代替val()

var text = $(this).text();
if (text === "Delete") 
{
    $(this).parent().remove();
}
else
{
    $(this).text("Delete");
}

答案 1 :(得分:1)

呀。这些经常被滥用:

.val()获取/设置输入值

.text()获取/设置元素的文本(例如以下<td>text</td>中的“文字”(

.html()在元素中添加HTML,例如以下<a>anchor</a>

中的<td><a>anchor</a></td>

答案 2 :(得分:1)

我认为您的ID选择器错误

应该是

$("#mylist li:last-child button")

而不是

$("#categorylist li:last-child button")

并更改

$(this).parent().append('...);

$(this).parent().parent().append('...');