我在div中有以下信息
<div class="list">Abc, Test, Ready</div>
在div下面,我有这个附加信息
<a href="javascript:void(0)" class="Abc">Remove Abc</a>
<a href="javascript:void(0)" class="Test">Remove Test</a>
<a href="javascript:void(0)" class="Ready">Remove Ready</a>
我正在尝试编写一个jQuery函数,当您单击相关的删除链接时,它将删除Abc,Test,Ready(以及必要时的逗号)。
答案 0 :(得分:2)
$('a').click(function() {
var str = $(this).attr("class");
$('.list').text($('.list').text().replace(str,''));
});
但如果您真的需要删除逗号,则需要更具创意:
$('a').click(function() {
var str = $(this).attr("class");
var rgx = new RegExp(str + ',?\\s*');
$('.list').text($('.list').text().replace(rgx,''));
});
答案 1 :(得分:1)
修改:更新(懒惰)删除不带正则表达式的尾随逗号;)
$(document).ready(function(){
$('a').click(function(){
$('div.list').html($('div.list').html().replace($(this).attr('class') + ', ', '').replace($(this).attr('class'), ''));
});
});
答案 2 :(得分:0)
你可以这样做:
$('a').click(function(e){
e.preventDefault();
var word = $(this).attr('class');
var div = $('.list').text();
div = div.replace(word, '');
$('.list').text(div );
});
答案 3 :(得分:0)
$('a').click(function(){
var str = $(this).attr('class');
var obj = $('.list');
var currentText = obj.text();
obj.text(currentText.replace(str,'');
});
或浓缩:
$('a').click(function(){
$('.list').text($('.list').text().replace($(this).attr('class'),''));
});
答案 4 :(得分:0)
最好将数据保存在数组中,然后修改该数组并使用新数据刷新div
。
var data = ["Abc", "Test", "Ready"];
refresh();
$("#Abc").click(function() { remove("Abc") });
$("#Test").click(function() { remove("Test") });
$("#Ready").click(function() { remove("Ready") });
function refresh() {
$("div").text(data.join(", "));
}
function remove(word) {
for(var i = 0; i < data.length; i++) {
console.log(i, data[i], word, data[i] == word);
if (data[i] == word)
data.splice(i, 1);
}
console.log(data);
refresh();
}