使用 Jquery 在动态事件中获取文本 [重复]

Posted

技术标签:

【中文标题】使用 Jquery 在动态事件中获取文本 [重复]【英文标题】:Get Text in Dynamic Events with Jquery [duplicate] 【发布时间】:2018-05-27 13:30:07 【问题描述】:

我正在尝试从元素 <li> 中的标签 <a> 中获取文本,但它不起作用。

for (i = 0; i < result.length; i++) 
  $("#ftrBtn-menu_Facility").append("<li id='ftrBtn-menu_Facility_" + (i) + "'><a href='#'>" + result[i].facility + "</a></li>");
  $("#ftrBtn-menu_Facility_" + (i)).click(function()
    var text = $("#ftrBtn-menu_Facility_" + (i)).find("a:first").text();
    alert(text);
  );

【问题讨论】:

简短回答:只需在点击时使用var text = $(this).find("a:first").text() 这是一个很好的例子,说明为什么你不应该使用自动生成的id 属性。你可以使用闭包,或者只是var text = $(this).find("a:first").text(); 【参考方案1】:

为什么你不只使用 class 而不是使用 id ? 这是我提出的解决方案

var result = [
  id: 1,
  facility: 'test1'
, 
  id: 2,
  facility: 'test2'
, 
  id: 3,
  facility: 'test3'
]
for (i = 0; i < result.length; i++) 
  $("#ftrBtn-menu_Facility").append("<li class='dtrBtn' id='ftrBtn-menu_Facility_" + (i) + "'><a href='#'>" + result[i].facility + "</a></li>");


$(".dtrBtn").click(function() 
  var text = $(this).text();
  alert(text);
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="ftrBtn-menu_Facility"></div>

【讨论】:

以上是关于使用 Jquery 在动态事件中获取文本 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在按键事件中使用jQuery在textarea中设置文本[重复]

Jquery Mobile Swipe 事件导致输入中的文本不可拖动

从 JQuery 中动态创建的数据中获取点击事件

在Jquery中获取所选选项的文本值[重复]

使用jQuery按值获取列表框中项目的文本[重复]

jQuery动态行绑定事件,发生重复绑定解决方案