【问题标题】:get previous or next cell value of table in jquery [duplicate]在jquery中获取表的上一个或下一个单元格值[重复]
【发布时间】:2012-06-23 20:59:11
【问题描述】:

可能重复:
How i get appointment time (From time,To time) in jquery

see jsfiddle

我通过拖动时隙单元格来选择时隙。 选择时间段后,我在文本框中输入姓名,然后为该时间段分配患者预约。 我必须在数据库中插入患者姓名(abc)、开始时间(上午 8:00 0)和结束时间(上午 8:00 30)。 我如何在 jquery 中获取这三个值。

【问题讨论】:

  • 您的问题应该更详细。您询问如何获取一些值,然后在您拥有的不工作的选择代码被忽略时抱怨,并且人们试图为您提供您提出的问题的解决方案。这需要时间和精力来帮助你!!

标签: javascript jquery html


【解决方案1】:

在我看来,要使时间表看起来很棒并在各种浏览器上提供良好的用户体验,还有很多工作要做。 也许您可以使用 jQuery 完整日历 (http://arshaw.com/fullcalendar/) 并对其进行自定义以满足您的需求。

这是一个在一天内创建时间事件的演示:

http://arshaw.com/js/fullcalendar-1.5.3/demos/selectable.html

【讨论】:

  • 如果我将时间从上午 8:00 拖到 30 点,你没有得到我的问题,然后我在文本框中输入一些名称并单击更新按钮,然后文本框值进入分配的时间段,所以我的问题是如何在 jquery 变量中获取这些值以进行进一步操作。
  • 抱歉,但我认为在当前情况下,选择时间而不更改 HTML 或尝试解析单元格中的值、比较它们并提取时间间隔并不是一个简单的解决方案。这就是为什么我建议使用专门的小部件来解决您现在和未来可能遇到的问题。
【解决方案2】:

通过一些轻微的 html 修改,例如向时间单元格和一些数据属性添加类,您可以利用 jQuery.data() 并使用类来简化定位单元格

 <td class="csstablelisttd time" data-hour="9" data-minute="45"> 45 </td>

当“slot”已被预订时,向其添加一个类以标识它已被预订。将患者姓名作为数据存储到时间单元中,您可以执行以下操作:

$('button').click(function() {
    var msg = 'No Bookings',
        $booked = $('.booked');
    if ($booked.length) {
        msg = [];
        $booked.each(function() {          
            var data = $(this).data()
            msg.push(data.hour + ':' + data.minute + ' - ' + data.patient)
        })
        msg = msg.join('\n');
    }
    alert(msg)
})

这是一个使用时间单元格上的单击事件的非常简化但有效的版本。您的鼠标选择方法似乎不起作用,并且单击对用户更友好。这不会完成您的整个应用程序,但应该会给您一些未来的想法

http://jsfiddle.net/vrW2n/27/

【讨论】:

  • charlietfl soln 很好,但必须通过拖动多个单元格来选择时间段
  • 使用 jQuery UI 可选。您仍然可以使用几乎相同的代码,只需将相同的类添加到所有选定的对象。你所拥有的东西不起作用,你的问题是关于如何获得价值。从这个简单的模型到拥有可以做你想做的事情的 html,你还有很长的路要走
  • 无法使用当前的 jquery 代码
  • 你在你的小提琴中使用使用 html 5 我不使用 html 5
  • 我没有使用 html 5,data- 属性在 html4 中工作
【解决方案3】:

使用新的 HTML5 time 元素 (documentation)。然后很容易用jQuery获取时间。

这是一个完整的示例,说明如何获取第一个选定的单元格和最后一个选定的单元格。在用户点击更新按钮后进行选择。

<!doctype html>
<html>
<head>
    <script 
        src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js">
    </script>
    <script 
        src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.0.6-development-only.js">
    </script>
    <script>
        $(function () {
            var start = $("td.csstdhighlight:first > time").attr("datetime");
            var end = $("td.csstdhighlight:last > time").attr("datetime");
        });
    </script>
</head>
<body>
    <table border="1">
        <tr><td class="csstdhighlight">
            <time datetime="2000-01-01 08:00:00">00</time>
        </td></tr>
        <tr><td class="csstdhighlight">
            <time datetime="2000-01-01 08:15:00">15</time>
        </td></tr>
        <tr><td class="csstdhighlight">
            <time datetime="2000-01-01 08:30:00">30</time>
        </td></tr>
        <tr><td><time datetime="2000-01-01 08:45:00">45</time></td></tr>
    </table>
</body>
</html>

请注意,如果您想支持 Internet Explorer 8 或更低版本,您需要确保 IE 将新的 HTML5 time 元素视为应有的。最简单的选择是在上面的示例中包含Modernizr library,或者如果您想了解详细信息,可以阅读博客文章How to get HTML5 working in IE and Firefox 2

【讨论】:

  • 为什么这很重要?可以在任何带有单行 JavaScript hack 的浏览器中使用,或者包含 Modernizr library
  • 如果我将时间从上午 8:00 拖到 30 点,你没有得到我的问题,然后我在文本框中输入一些名称并单击更新按钮,然后文本框值进入分配的时间段,所以我的问题是如何在 jquery 变量中获取这些值以进行进一步操作。
  • 在我的回答中,我告诉您如何使用新的 HTML5 语义元素 time 来标记您的 HTML,以便您可以使用 jQuery 获取约会的开始和结束时间。你已经知道这个名字了。它位于文本框中。
  • 你得到我的问题了吗,我没有使用 html 5 时隙单元格中的值是动态的而不是静态的
猜你喜欢
  • 1970-01-01
  • 2012-04-03
  • 2019-05-02
  • 2020-08-01
  • 2020-08-05
  • 1970-01-01
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多