0

我正在尝试将输入的值设置为单击的列表项的值。它们都存在于 class = container 的同一个 div 中

jQuery

$('li').click(function(){

    /* Somehow set the value of the input that is within the same div 
    with class equal container to the data-personguid on this li. */

});

HTML

<div class="container">
    <div>
        <ul>
            <li data-personguid="3" />
            </li>
        </ul>
    </div>
    <input type="hidden" class="personguid" id="thirdinput" />
</div>

<div class="container">
    <div>
        <ul>
            <li data-personguid="4" />
            </li>
        </ul>
    </div>
    <input type="hidden" class="personguid" id="fourthinput />
</div>

因此,如果单击了 data-personguid = 3 的 li,我希望输入 id = thirdinput 将其值设置为 3。

同样,如果单击 data-personguid = 4 的 li,我希望输入 id = Fourthinput 将其值设置为 4。

所以我想我会尝试做的是找到类 personguid 的输入,它在同一个 div 中,class = container 作为单击的列表项,并设置它的值。

目前不确定如何执行此操作。

jquery 需要是通用的,因此每个容器块使用相同的代码。

4

2 回答 2

2
$('li').on('click', function(){
    $(this).closest('.container').find('.personguid').val($(this).data('personguid'));
});
于 2012-07-03T20:52:37.177 回答
0

如果您只是将数字附加到您的 id 会更容易,这样您就不必对每个数字进行硬编码

$('li').click(function(){
    var x = $(this).data('personguid');
    $('#input'+ x).val(x);
});

所以你的输入将是 id=input1, id=input2, id=input3 等

于 2012-07-03T20:50:34.237 回答