我正在尝试使用其id访问span元素的文本。这里是一些html(使用点击事件来触发音频文件的英语/泰语网站的一部分)
<p class="link_box"><span class="color_up set1" id="s1e01">I can.. </span>ฉันสามารถ..</p>
<p class="link_box"><span class="color_up set1" id="s1e02">I cannot (can’t)</span>ฉันไม่สามารถ..</p>
我想使用span id“s1e01”访问并显示文本“I can ..”。这是js代码:
var word1 = "";
jQuery("div#word_set").click(function (evnt) {
if(audioIsPlaying !== true) {
var elementId = evnt.target.id;
word1 = jQuery(elementId).text();
var pathVar = document.getElementById("pathVar").innerHTML;
var oggVar = pathVar+elementId+".ogg";
var audioElement = document.createElement("audio");
...
代码“jQuery(elementId).text()”似乎没有返回任何值,因为word1不会从其初始化值“”改变。这个问题似乎以elementId为中心,但我无法看到它的用处。任何帮助将非常感激。
答案 0 :(得分:0)
如果要在jQuery选择器中使用元素ID,则需要#
前缀,因此它应该是:
word1 = jQuery('#'+elementId).text();
但你为什么要首先获得身份证?您已经拥有对象的引用,因此您不需要搜索它。只是做:
word1 = jQuery(evnt.target).text();
您的处理程序也可以更精确:
jQuery("#word_set span.set1").click(function() {
if(audioIsPlaying !== true) {
word1 = $(this).text();
...
将处理程序绑定到特定目标时,this
会自动设置为目标。如果动态添加这些元素,则可以使用委托:
jQuery("#word_set").on("click", "span.set1", function() {
if(audioIsPlaying !== true) {
word1 = $(this).text();
...