JQuery获得span的内容

Fra*_*ank 15 jquery

我试图在单击按钮时获取跨度的内容.这是html:

<div class="multiple-result">
<button class="select-location" id="168">Select</button>
<span>Athens, Greece</span>
</div>

<div class="multiple-result">
<button class="select-location" id="102">Select</button>
<span>Athens, Georgia, USA</span>
</div>
Run Code Online (Sandbox Code Playgroud)

我试图得到它,以便当单击按钮时它将获得跨度的值.这就是我正在使用的:

$('button.select-location').live('click', function(event){

  // set the span value
  var span_val = $(this).parent("span").html();

  alert('selecting...' + span_val);

});
Run Code Online (Sandbox Code Playgroud)

但警报始终显示:选择... null

gil*_*ly3 46

您想先获取父级,然后找到范围:

var span_val = $(this).parent().find("> span").html(); 
Run Code Online (Sandbox Code Playgroud)

编辑: 还回去看看代码,你写了2年前和叹息,"为什么我做?".上面的代码很尴尬.而不是.find("> span"),我应该使用.children("span").

var span_val = $(this).parent().children("span").html(); 
Run Code Online (Sandbox Code Playgroud)

但是,你父母的孩子是什么?一个兄弟姐妹!所以,.parent().children("span")我应该使用,而不是.siblings("span").

var span_val = $(this).siblings("span").html();
Run Code Online (Sandbox Code Playgroud)

但是,看看HTML,我们甚至不需要挖掘兄弟姐妹,我们知道它是下一个兄弟姐妹:

var span_val = $(this).next("span").html();
Run Code Online (Sandbox Code Playgroud)

要不就:

var span_val = $(this).next().html();
Run Code Online (Sandbox Code Playgroud)

到目前为止,我们几乎没有使用jQuery.我们可以说:

var span_val = this.nextSibling.innerHTML;
Run Code Online (Sandbox Code Playgroud)

但是,也许现在我把钟摆摆得太远了?

  • 我喜欢这个答案.这几乎就是我每天的内心独白.这值得超过6个赞成! (5认同)
  • 投票赞成“每回去看看你两年前写的代码,然后gro吟,“我为什么要这么做? (2认同)