当单击按钮时,我正在尝试获取跨度的内容.这是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>
我试图得到它,以便当按钮被点击时,它将获得跨度的值.这是我正在使用的:
$('button.select-location').live('click',function(event){ // set the span value var span_val = $(this).parent("span").html(); alert('selecting...' + span_val); });
但是警报总是显示:选择… null
解决方法
你想先得到父母,然后找到跨度:
var span_val = $(this).parent().find("> span").html();
编辑:Ever go back and look at code you wrote 2 years ago和呻吟,“为什么这样做?上面的代码很尴尬而不是.find(“> span”),我应该使用.children(“span”).
var span_val = $(this).parent().children("span").html();
但是,你父母的孩子是什么?兄弟姐妹!所以,而不是.parent().children(“span”),我应该使用.siblings(“span”).
var span_val = $(this).siblings("span").html();
但是,看HTML,我们甚至不需要挖掘兄弟姐妹,我们知道这是下一个兄弟姐妹:
var span_val = $(this).next("span").html();
要不就:
var span_val = $(this).next().html();
到目前为止,我们几乎没有使用jQuery.我们可以说:
var span_val = this.nextSibling.innerHTML;
但是,也许现在我摆摆了太远了呢?