jquery脚本选择以前的兄弟

时间:2014-01-02 17:44:48

标签: javascript jquery jquery-mobile

嗨我正在使用jquery mobile这是代码

    <form class="ui-filterable">
        <input id="filterBasic-input" data-type="search">
    </form>
    <div data-role="collapsible">
        <h2><span>paris</span><span class="pays">france</span> 
    <a  class="gene02"data-role="button" data-inline="true" data-mini="true">generique</a></h2>
        <p>code:24</p>
    </div>
</li>
<li>
    <div data-role="collapsible">
        <h2><span>marakeche</span>
            <span class="pays">maroc</span>
            <a class="gene02"data-role="button" data-inline="true" data-mini="true">generique</a>
        </h2>
        <p>code:3300</p>
    </div>
</li>

我希望我点击class =“gene02”它将获得一个先例跨度的值与类支付并将其放在表格类=“ui-filterable”我尝试做这个形式类ui-filterable < / p>

$(document).ready(function () {
    $(".gene02").click(function () {
        $("#filterBasic-input").val($(".pays").html());
    });
});

但它只选择法国而不是第二个div中的maroc。请求帮助

3 个答案:

答案 0 :(得分:0)

基本上来自class selectorcollection个元素,如果您访问其任何属性/值,它将仅返回集合中first one的值。

尝试,

$(document).ready(function() {
 $(".gene02").click(function() {
    var xOutput = '';
    $('.pays').each(function(){ xOutput += $(this).html(); }); 
    $("#filterBasic-input").val(xOutput);
 });
});

$(document).ready(function() {
  $(".gene02").click(function() {      
    $("#filterBasic-input").val($(this).closest('div').find('.pays').html());
  });
});

答案 1 :(得分:0)

你可以这样:

$(".gene02").click(function() 
{
    var $brotha = $(this).parent().find(".pays");
    //$brotha is your element
});

http://jsfiddle.net/p7ENh/

http://jsfiddle.net/p7ENh/1/

答案 2 :(得分:0)

$(".gene02").click(function () {
    $("#filterBasic-input").val($(this).prevAll(".pays").html());
});

如果它始终是第一个兄弟姐妹,您也可以使用$(this).prev()代替。