jQuery嵌套的span文本值

text line 1 text line 2 text line 3 text line 4 text line 5

我在页面中有上面的div和跨度。 在下面的代码中,我能够得到p0的id(alert(pID)。但是我真的希望在p0的范围内得到文本。

 $("div[id^='divBase']").live("click", function () { var pID = $(this).find("span[id^='p']").attr("id"); alert(pID); }); 

我应该注意到,当表单加载时,我正在生成div和spans(在jQuery中写出来)。 这就是为什么我有.live。 我这样做是在divBase0中找到嵌套跨度的最佳方法吗? 其次,如何在span p0中获取文本?

谢谢!

只需使用.text()来获取文本内容,如下所示:

 $("div.divBase").live("click", function () { var pText = $(this).find("span[id^='p']").text(); alert(pText); }); 

这是最好的方法吗? 如果您需要ID,那么确定,如果没有,那么只需使用类,如下所示:

 
text line 1 text line 2 text line 3 text line 4 text line 5

并在函数中使用类:

 $("div.divBase").live("click", function () { alert($(this).find("span.p").text()); }); 

更好的一步是将处理程序附加到父元素所有这些.divBase元素与.delegate() ,如下所示:

 $("#divContainer").delegate("div.divBase", "click", function () { alert($(this).find("span.p").text()); }); 

这消除了初始选择器性能成本以及更便宜或未来的点击。