Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中单选按钮后,选择表td的确切数字_Javascript_Jquery - Fatal编程技术网

Javascript 选中单选按钮后,选择表td的确切数字

Javascript 选中单选按钮后,选择表td的确切数字,javascript,jquery,Javascript,Jquery,我有一个多步骤表单,在其中一个步骤中,我选择整数1–X,以便在下一步中使用。在下一步中,我有一个每周工作日的表格,我在这里只显示了一个缩短的版本。有些单元格包含单选按钮 我想做的是:如果我选择一个单选按钮,我需要添加一个类到TD列的确切数量,该列在我检查单选按钮的下面。 以下是该表的一个示例: <table> <thead> <tr> <th></th> <t

我有一个多步骤表单,在其中一个步骤中,我选择整数1–X,以便在下一步中使用。在下一步中,我有一个每周工作日的表格,我在这里只显示了一个缩短的版本。有些单元格包含单选按钮

我想做的是:如果我选择一个单选按钮,我需要添加一个类到TD列的确切数量,该列在我检查单选按钮的下面。 以下是该表的一个示例:

<table>
    <thead>
        <tr>
            <th></th>
            <th>Úterý<br />06.12.2011</th>
           <th>Středa<br />07.12.2011</th>
       </tr>
    </thead>
    <tbody>
        <tr class="odd">
            <td>08:00</td>
            <td><div class="form-item" id="edit-datetime-worker-wrapper">
                <label class="option" for="edit-datetime-worker">
                <input type="radio" id="edit-datetime-worker" name="datetime_worker" value="2011-12-06T08:00:00::3"   class="form-radio" />
                <span>6. 12. 2011 – 08:00</span></label>
                </div>
            </td>
            <td><div class="form-item" id="edit-datetime-worker-11-wrapper">
                <label class="option" for="edit-datetime-worker-11">
                <input type="radio" id="edit-datetime-worker-11" name="datetime_worker" value="2011-12-07T08:00:00::3"   class="form-radio" />
                <span>7. 12. 2011 – 08:00</span></label>
                </div>
            </td>
        </tr>
        <tr class="even">
            <td>08:30</td>
            <td><div class="form-item" id="edit-datetime-worker-1-wrapper"></div></td>
            <td><div class="form-item" id="edit-datetime-worker-12-wrapper">
                <label class="option" for="edit-datetime-worker-12">
                <input type="radio" id="edit-datetime-worker-12" name="datetime_worker" value="2011-12-07T08:30:00::3"   class="form-radio" />
                <span>7. 12. 2011 – 08:30</span></label>
                </div>
            </td>
        </tr>
        <tr class="odd">
            <td>09:00</td>
            <td><div class="form-item" id="edit-datetime-worker-2-wrapper">
                <label class="option" for="edit-datetime-worker-2">
                <input type="radio" id="edit-datetime-worker-2" name="datetime_worker" value="2011-12-06T09:00:00::3"   class="form-radio" />
                <span>6. 12. 2011 – 09:00</span></label>
                </div>
            </td>
            <td><div class="form-item" id="edit-datetime-worker-13-wrapper">
                <label class="option" for="edit-datetime-worker-13">
                <input type="radio" id="edit-datetime-worker-13" name="datetime_worker" value="2011-12-07T09:00:00::3"   class="form-radio" />
                <span>7. 12. 2011 – 09:00</span></label>
                </div>
            </td>
        </tr>
    </tbody>
</table>
从上一步我有一个数字,比如说2。所以我检查了第二列středa 7中的第一个单选按钮。122011年,我需要向下面的单元格或其中的div添加一个类

我怎样才能做到这一点?我在JS方面真的是个笨蛋
如果您需要其他信息,请随时询问。

只需为单选按钮和单选按钮所在的添加唯一的ID号即可。例如

<td id=1><div class="form-item" id="edit-datetime-worker-wrapper">
         <label class="option" for="edit-datetime-worker">
         <input type="radio" id="edit-datetime-worker-1" name="datetime_worker" value="2011-12-06T08:00:00::3"   class="form-radio" />
          <span>6. 12. 2011 – 08:00</span></label>
          </div>
</td>

请注意,的唯一id为1,单选按钮id=edit-datetime-worker-1的唯一id相同。现在,您可以使用getattribute函数获得单选按钮的唯一编号,并将该编号与匹配,现在您可以在单击相应的单选按钮时将类添加到

是否要根据选择的单选按钮突出显示列

您可以使用.index确定选择的列,然后使用:nth child选择列中的实际td

$('input:radio').change(function() {
    var i = $(this).parent().index() + (1);
    $('td').removeClass('highlight');
    $('td:nth-child(' + i + ')').addClass('highlight');
});
更新。看起来比需要的复杂多了。如果您能明确您的功能需求,我们可以简化代码。但如果不能做到这一点,下面是更新的代码。var num=2是要高亮显示的单元格数量


上一步是什么样子的?我的第一个想法是按照$edit datetime worker-+NUMBERFROM PREVIOUSSTEP.attrchecked,checked;。这会将radiobutton与上一步中的数字进行核对。同样,您也可以添加CSS类:$edit datetime worker-+NUMBERFROM PREVIOUSSTEP.addClassNEWCSSCLASS;。在上一步中,用户选择了一个动作。每一个动作都需要不同的时间跨度——这就是数字。是的,类似的。但由于不同,我不想高亮显示整个COLLMN,而只想使用选定的单选按钮将TDs的指定numebr显示在td下方。下面是上面代码中突出显示的表的图像。多谢各位。在JS Fiddle预览中,脚本正是我所需要的。当我将脚本复制到我的开发站点时,它没有做任何事情。:/在错误控制台中,我有$this.closest不是一个函数,但它不应该是问题所在,因为我有另一个脚本,它在选择收音机后正在做其他事情,而这个脚本正在工作并使用.closest。我甚至尝试删除我的脚本,只执行你的函数,但没有用。好的。我刚刚发现了问题。我只有jqueryv。1.3.2-无法更新。是否可以重写此代码以使用此版本工作?好的。我刚刚设法将我的drupal站点更新到1.7.1。现在它的工作就像一个魅力。再次非常感谢。
$('input:radio').change(function() {
    var num = 2;
    var col = $(this).closest('td').index() + 1;
    var row = $(this).closest('tr').index();

    var tds = $('td:nth-child(' + col + ')');
    tds = tds.slice(row,row+num);

    $('td').removeClass('highlight');
    tds.addClass('highlight');
});