我已动态创建span标签并附加到div。现在我想得到它的id,我选择并删除它。它类似于jquery tagit。下面我正在使用它,但它无法正常工作。当我点击特定范围时,查看id可以得到。
$('span').on('click', function (e){
alert(e.target.Id);
});
答案 0 :(得分:3)
您不需要[TestMethod]
public async Task ExceuteMultipleRequestsInParallel()
{
Stopwatch sw = new Stopwatch();
sw.Start();
HttpClient client = new HttpClient();
HttpClient client2 = new HttpClient();
HttpClient client3 = new HttpClient();
Task<string> ms = client.GetStringAsync("http://www.microsoft.com");
Task<string> msdn = client2.GetStringAsync("http://msdn.microsoft.com");
Task<string> blogs = client3.GetStringAsync("http://blogs.msdn.com");
await Task.WhenAll(ms, msdn, blogs);
sw.Stop();
var result = sw.Elapsed.ToString();
}
[TestMethod]
public async Task ExcecuteMultipleRequests()
{
Stopwatch sw = new Stopwatch();
sw.Start();
HttpClient client = new HttpClient();
HttpClient client2 = new HttpClient();
HttpClient client3 = new HttpClient();
string ms = await client.GetStringAsync("http://www.microsoft.com");
string msdn = await client2.GetStringAsync("http://msdn.microsoft.com");
string blogs = await client3.GetStringAsync("http://blogs.msdn.com");
sw.Stop();
var result = sw.Elapsed.ToString();
}
(并且id
可能没有{}},您已经拥有对该元素的引用:span
。这是标准的jQuery行为。 (事实上,它是你可以在不使用jQuery的情况下连接事件的各种方式的标准。)
所以
this
(或者,是的,添加$('span').on('click', function() {
$(this).remove(); // Removes the one that was clicked
});
并使用e
:e.target
)
重新评论:
我尝试使用该代码,但也没有触发click事件。
这表明问题$(e.target).remove();
在您的代码运行时不存在,因此您最终不会挂钩span
事件。
为了解决这个问题,你可能想要一个委托处理程序:在开发工具中,右键单击其中一个跨度,找到一个共同的祖先,他们拥有确实,当你的代码运行。 (在最坏的情况下,可能是click
,但通常情况下更好地确定范围。)然后:
document
有关详细信息,请参阅on
。此外,如果$('selector-for-that-ancestor-element').on('click', 'span', function() {
$(this).remove(); // Removes the one that was clicked
});
具有任何标识特征(如span
或某个属性),您可能希望在上面的委托选择器中包含该特征更具体。