如何将ID传递给JavaScript函数

How to pass ID to a JavaScript function

本文关键字:JavaScript 函数 ID      更新时间:2023-09-26

在HTML中,我有:

<td>
    <span id="change_naco"></span>
    <span id="naco">Food</span>
</td>            
<td>
    <span id="change_naco"></span>
    <span id="naco">apples</span>
</td>

这些行来自MySQL查询。我需要在函数中加载它们:

<script type="text/javascript">
    EditInPlace.defaults['save_url'] = 'php/save.php?id=150';
    $('naco').editInPlace({
        form_type: 'select',
        select_options: {
            '1':    'food',
            '2':    'apples',
            '3':    'oranges',
            '4':    'beer'
        },
        external_control: 'change_naco'
    });
</script>

我知道我必须以不同的方式调用我的ID,所以我可以通过PHP添加一个数字来实现这一点,例如change_naco1, change_naco2, change_naco3naco1, naco2, naco3,但我要将这些ID名称传递给函数吗?

它用于就地编辑(下拉菜单)。它对一个ID运行良好,但当我从查询中加载更多行时,它只对第一个ID有效。

听起来像是要将editInPlace调用添加到DOM节点的集合中。如果是这种情况,那么类比ID更合适,因为许多DOM元素可以共享同一个类。例如,

HTML:

    <td>
        <span id="change_naco1"></span>
        <span class="naco">Food</span>
    </td>
    <td>
        <span id="change_naco2"></span>
        <span class="naco">apples</span>
    </td>

JavaScript:

请注意使用.naco而不是naco。此表单是一个类选择器。

$('.naco').editInPlace({
    form_type: 'select',
    select_options: {
        '1':    'food',
        '2':    'apples',
        '3':    'oranges',
        '4':    'beer'
    },
    external_control: 'change_naco'
});

如果您希望editinPlace适用于id以"naco"开头的所有项目,您可以使用以下命令:

$('[id^="naco"]').editInPlace({
    form_type: 'select',
    select_options: {
        '1':    'food',
        '2':    'apples',
        '3':    'oranges',
        '4':    'beer'
    },
    external_control: 'change_naco'
});

或者,相反,给出所有相同的"naco"类,并使用选择器".naco"

选择一个id需要一个#。例如:

$('#naco')