Javascript 在收音机和select之间同步当前选定项目

Javascript 在收音机和select之间同步当前选定项目,javascript,jquery,Javascript,Jquery,短版 我有两张表格。一个带有单选按钮,一个带有下拉菜单(选择)。 两者结构相同。例如,如果单选按钮的值发生变化,则下拉对应项应更改为相同的值 限制: 每个收音机和select的ID和name属性都是随机的。后端将生成一些随机值。所以我不能使用它们。混乱,我知道。但我不能改变这一点。 唯一不变的是CSS类 这是我已经得到的: 我给每一个选择和每一个单选按钮一个类来清除值: // All Mobile Selects var $mobRechnung = $mobile.find('.js-noti

短版
我有两张表格。一个带有单选按钮,一个带有下拉菜单(选择)。
两者结构相同。例如,如果单选按钮的值发生变化,则下拉对应项应更改为相同的值

限制:
每个收音机和select的ID和
name
属性都是随机的。后端将生成一些随机值。所以我不能使用它们。混乱,我知道。但我不能改变这一点。
唯一不变的是CSS类

这是我已经得到的:
我给每一个选择和每一个单选按钮一个类来清除值:

// All Mobile Selects
var $mobRechnung = $mobile.find('.js-notification-set--rechnung'),
    $mobJahr = $mobile.find('.js-notification-set--jahr'),
    $mobMonat = $mobile.find('.js-notification-set--monat'),
    $mobErinnerung = $mobile.find('.js-notification-set--erinnerung');

// All Desktop Radios
var $deskRechnungBrief = $desktop.find('js-notification-set--rechnung-brief'),
    $deskRechnungMail = $desktop.find('js-notification-set--rechnung-mail'),

    $deskJahrBrief = $desktop.find('js-notification-set--jahr-brief'),
    $deskJahrMail = $desktop.find('js-notification-set--jahr-mail'),
    $deskJahrNo = $desktop.find('js-notification-set--jahr-no'),

    $deskMonatMail = $desktop.find('js-notification-set--monat-mail'),
    $deskMonatSMS = $desktop.find('js-notification-set--monat-sms'),
    $deskMonatNo = $desktop.find('js-notification-set--monat-no'),

    $deskErinnerungMail = $desktop.find('js-notification-set--erinnerung-mail'),
    $deskErinnerungSMS = $desktop.find('js-notification-set--erinnerung-sms'),
    $deskErinnerungNo = $desktop.find('js-notification-set--erinnerung-no');
如您所见,我无法组合单选按钮,因为我无法使用它们的
名称
。所以我需要给每个值一个单独的类来分隔它们

然后我想我把它们放在数组中,并用jQuery
.map()
对它们进行循环,但现在我被卡住了。我不知道我应该如何继续写一本没有代码的小说

如果您需要更多代码,请告诉我

编辑HTML标记:
桌面代码示例。每一行都是一样的

<div class="js-notification-set--desk>
   {# Rechnung Row #}
        <div class="row">
            <fieldset>
                <legend class="col-sm-3">Rechnung</legend>

                {# Brief Radio #}
                <div class="mod-formelem col-sm-1">
                    <input type="radio" id="__radio1__" name="__row1__" class="js-notification-set--rechnung-brief" aria-labelledby="__sr01__"/>
                    <label for="__radio1__" class="mod-formelem--icon" aria-hidden="true"></label>
                </div>

                {# E-Mail Radio #}
                <div class="mod-formelem col-sm-1">
                    <input type="radio" id="__radio2__" name="__row1__" class="js-notification-set--rechnung-mail" checked="checked"
                           aria-labelledby="__sr02__"/>
                    <label for="__radio2__" class="mod-formelem--icon" aria-hidden="true"></label>
                </div>
            </fieldset>
        </div>
(...)
     </div>

使用单选按钮的索引选择
中的相应选项


使用单选按钮的索引选择
中的相应选项


共享示例html标记also@ArunPJohny:完成。希望足够了。使用单选按钮的索引,然后在相应的选择中选择具有相同索引的选项。您可以共享生成的html而不是template@ArunPJohny字体看起来一样。不会替换ID和名称,因为我在开发时不连接后端。因此,最终的HTML看起来是一样的,只是ID和名称非常难看。共享一个HTML标记示例also@ArunPJohny:完成。希望足够了。使用单选按钮的索引,然后在相应的选择中选择具有相同索引的选项。您可以共享生成的html而不是template@ArunPJohny字体看起来一样。不会替换ID和名称,因为我在开发时不连接后端。所以最终的HTML看起来是一样的,只是ID和名称非常难看。我认为这是正确的方法。所以
+1
&接受。可悲的是,它不会为我工作,因为我刚刚看到它是多么混乱,当我附加后端。所以现在这是一个完全不同的故事。但是谢谢你。我将使用你答案中的“核心逻辑”。我认为这是正确的做法。所以
+1
&接受。可悲的是,它不会为我工作,因为我刚刚看到它是多么混乱,当我附加后端。所以现在这是一个完全不同的故事。但是谢谢你。我将使用你答案的“核心逻辑”。
<div class="js-notification-set--mob">
   {# Rechnung Row #}
        <div class="row">
            <div class="col-sm-4">
                <label for="___select1___" class="control-label">
                    Rechnung
                </label>
            </div>
            <div class="col-sm-8 js-tooltip--container">
                {# select1 #}
                <select data-select-type="default" data-placeholder="Rechnung"
                        class="form-control js-select js-notification-set--rechnung" name="Rechnung" id="___select1___">
                    <option value="___select1_option1___">Brief</option>
                    <option value="___select1_option2___" selected>E-Mail</option>
                </select>
            </div>
        </div>
(...)
</div>
$(".js-notification-set--desk :radio").click(function() {
    var index = $(".js-notification-set--desk :radio").index(this);
    $(".js-notification-set--rechnung").prop('selectedIndex', index);
});