Javascript 如何在没有选择的情况下加载选择器中的所有选项

Javascript 如何在没有选择的情况下加载选择器中的所有选项,javascript,jquery,select,option,Javascript,Jquery,Select,Option,当我为新产品添加选项时,必须使用一个选择器来选择我需要的选项。但所有可用选项都是必需的,并且必须在不使用选择器的情况下可见。 如何在不使用选择器的情况下,通过选项_id添加到每个选项的表单中 HTML.file <div class="ms-options"> <p class="error" id="error_options"></p> <div class="options"></div> <di

当我为新产品添加选项时,必须使用一个选择器来选择我需要的选项。但所有可用选项都是必需的,并且必须在不使用选择器的情况下可见。 如何在不使用选择器的情况下,通过选项_id添加到每个选项的表单中

HTML.file

<div class="ms-options">
    <p class="error" id="error_options"></p>

    <div class="options"></div>

    <div>
        <select name="options[0]" class="select_option">
            <option value="0" disabled="disabled" selected="selected"><?php echo $ms_options_add; ?></option>
            <?php foreach($options as $option) { ?>
            <option value="<?php echo $option['option_id']?>"><?php echo $option['name']; ?></option>
            <?php } ?>
        </select>
    </div>
</div>
pls hlp

我的尝试

html.file

<div class="ms-options">
    <p class="error" id="error_options"></p>



    <div>
            <?php foreach($options as $option) { ?>
            <div id="<?php echo $option['option_id']?>"></div>
            <?php echo addoption($option['option_id'])?>
            <?php } ?>
    </div>
</div>
但我有这个信息

致命错误:在第9行的/home/moidomki/public_html/catalog/view/theme/default/template/multiseller/account-product-form-options.tpl中调用未定义的函数addoption

看起来好像无法查看我的函数?

您正在调用委托。看到你的第一个参数了吗?是的。选择_选项。在这里,您可以指定要在其中定义选项的标记的选择器。从此以后,您无需再次指定它。在作为参数传递给委托的函数中,可以改用$this。如果可能的话,实际上最好在委托内部使用$this,因为这样jquery就不必从DOM中搜索它

请参见此示例:

$( "table" ).delegate( "td", "click", function() {
    $( this ).toggleClass( "chosen" );
});
从这里开始

编辑:

在此,我对Yurii Litvinenko所做的实验做了一些记录:

让我先明确一点,看到人们实际上在努力自学,这是一件非常愉快的事情。当然,这个实验是有缺陷的,但别忘了,学习它的最好方法就是实际去做 您所面临的实际问题是,您试图使用php调用javascript函数。了解php代码称为服务器端或后端,javascript代码称为客户端或前端,这一点很重要。php在服务器上运行,javascript在用户计算机上运行,因此不能在服务器端调用客户端函数 我在你的新实验中没有看到你的选择标签 如果我没有弄错的话,您正在服务器上成功填充初始选项集 如果要向已发送到客户端的select添加选项,则需要使用javascript,如下所示:

函数addOptionid,名称{ $。选择_option.htmlselect_option.html++name+; }


我不明白你的意思。您不能没有。@Barmar,他/她想在选择中添加一个选项,而不通过选择器引用选择。这可能是一个家庭作业,老师可能希望他们在传递给委托的函数中使用$This而不是选择器。我仔细地回答了这个问题,只是为了说明如何不使用选择器,但没有从op.Lajos Arpad中获得所有乐趣。谢谢你的回答!我的意思是,在新产品的形式中有一个选择器,所有的选项都需要被选择才能使用。但事实上,所有这些选项都是必需的,必须提前以特殊顺序显示。所以我想得到所有的选择,然后一个接一个地给他们打电话。这不是老师给我的工作。我正在学习,没有人可以问我这里出了什么问题。Lajos Arpad,我想我不应该使用该活动,我可以在没有授权的情况下,让所有这些选项在一条直线上进行。但是怎么做呢?@Yuriilitvineko,我相信你应该用它。问题是,在指定给委托的函数中使用$this比使用$.select\u选项在整个DOM中搜索要好。我相信你的老师想向你展示这一点,以此作为编写更好代码的可能性。Lajos Arpad,我没有老师,我正在自学。无论如何,谢谢你,我会尝试使用你的建议。对于你之前的评论,你可以创建一个变量,称为myOptions,循环遍历这些值并将它们添加到其中,如下所示:myOptions+=+optionText+'。当字符串中有所有选项时,可以将它们添加到select:$.select_option.htmlmyOptions。有许多可能的解决办法。我通常构建一个字符串并将其添加到select标记,或者在服务器端生成元素。谢谢Lajos Arpad的建议!首先,我祝你今年和其他所有人好运,并祝你圣诞快乐。我试过你的建议,但我没有按我所希望的那样去做。而且什么也没发生。我写了一些代码我想让你看看它的方向是否正确?
$(function() {

    function addoption(optionid) {

        var option_id = optionid;
        $.get($('base').attr('href') + 'index.php?route=seller/account-product/jxRenderOptionValues&option_id=' + option_id, function(data) {


            $('div'."optionid").append(data);
        });
    });
});
$( "table" ).delegate( "td", "click", function() {
    $( this ).toggleClass( "chosen" );
});