单击另一个锚点标记时,从锚点标记获取字符串值
get string value from anchor tag, when another anchor tag is clicked
我有一个<ul>
,它动态添加了<li>
,同时还在数组中存储了一个字符串。当我单击"删除"图像时,我需要删除数组中的<li>
和字符串。
这就是我向<ul>
和数组添加字符串的方式:
function addTab() {
tabs.append('<li class="navHighlight">' + '<a href="#">' + title + '</a>' + '<a href="#">' + '<img src="images/delete.png" class="deleteImage"/>' + '</a>' + '</li>');
};
var found = jQuery.inArray(title, titles);
if (found >= 0) {
} else {
titles.push(title);
addTab();
}
这就是我试图删除它们的方式:
$("body").on("click", ".deleteImage", function(e) {
removeItem = $(this).closest('li a').text();
console.log(removeItem);
titles = jQuery.grep(titles, function(value) {
return value != removeItem;
});
removeTab();
});
function removeTab() {
$(this).closest('.macTypeNav li').remove();
}
我可以很好地添加<li>
和字符串值,但当我尝试删除它们时,什么也不会发生。事件从单击侦听器中激发;然而,removeItem
变量没有被设置并且<li>
没有被移除。
我希望避免在添加每个<a>
时给它们一个id,但我并不反对以某种方式添加一个允许我引用它们的类。
任何想法都是受欢迎的,我相信这可能相当简单,但我今天就要结束了,我现在一辈子都无法思考这个问题。
使用DOM;它很神奇。还有实参数,因为全局变量不是传递参数的合适方式。
var titles = [];
function addTab(title) {
var newTab = $("<li>", { "class": "navHighlight" });
newTab.append($("<a>", { href: "#", text: title }));
newTab.append($("<img>", { src: "images/delete.png", "class": "deleteImage" }));
newTab.data("title", title);
newTab.appendTo(tabs);
titles.push(newTab[0]);
}
$("body").on("click", ".deleteImage", function(e) {
var remove = $(this).closest("li");
titles.splice(titles.indexOf(remove[0]), 1);
remove.remove();
});
removeTab
中的this
不涉及delete
元素
$("body").on("click", ".deleteImage", function (e) {
var removeItem = $(this).closest('li').find('a').text();
console.log(removeItem);
titles = jQuery.grep(titles, function (value) {
return value != removeItem;
});
removeTab(this);
});
function removeTab(del) {
$(del).closest('li').remove();
}
演示:Fiddle
或使用.call()将自定义执行上下文传递给removeTab
方法
$("body").on("click", ".deleteImage", function (e) {
removeItem = $(this).closest('li').find('a').text();
console.log(removeItem);
titles = jQuery.grep(titles, function (value) {
return value != removeItem;
});
console.log(titles)
removeTab.call(this);
});
function removeTab() {
$(this).closest('li').remove();
}
演示:Fiddle
相关文章:
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 如何从键Code;中获取字符串/字符值;
- 从输入中获取字符串,并在AngularJS中发出AJAX请求
- 从 url 获取字符串值
- 从Javascript函数获取字符串
- Javascript:获取字符串形式的对象名称
- 获取字符串中与正则表达式匹配的所有子字符串
- 获取字符串中的匹配项数组作为索引
- 我可以从类型编号中获取字符串值吗?
- 为什么我得到数组如何获取字符串
- 在 Javascript 中获取字符串中的最后一个符号时值错误
- 如何获取字符串中重复的字母
- 获取字符串中最后一个换行符的最有效方法是什么
- JQuery获取字符串的一部分
- 单击另一个锚点标记时,从锚点标记获取字符串值
- 如何从视频标记错误事件中获取字符串/消息或代码
- 如何获取字符串中元音的总数
- 从子字符串之后的字符串中获取字符串
- 从字符串原型javascript获取字符串值
- 通过 JavaScript 获取字符串中第二个空格之前和之后的子字符串