【问题标题】:Displaying a message dialogbox in a specified table cell in HTML在 HTML 中的特定表格单元格中显示消息对话框
【发布时间】:2014-01-13 14:42:19
【问题描述】:

我使用 HTML、XML 和 XLST 创建了一个表格。我正在使用 for-each 循环创建一个表,该循环插入 xml 文件中的数据。

一旦表格填满数据,我希望每个被点击的单元格都显示对话框消息框。

XML 文件代码:

<person>
    <title>Abraham</title>
    <slota>Johns</slota>
    <slotb>22</slotb>
    <slotc>male</slotc>
    <slotd>ave road</slotd>
    <slote>0384847</slote>
    <slotf>shdh@hot.com</slotf>
    <slotg>UK</slotg>
  </person>

上面是需要插入表中的所有数据的代码。

XSLT 代码:

<table border="1" cellspacing="0">
        <tr>
          <th bgcolor="DarkGray" >Employee</th>
          <th id="cell1" bgcolor="DarkGray">name</th>
          <th id="cell2" bgcolor="DarkGray">surname</th>
           <th id="cell3" bgcolor="DarkGray">age</th>
          <th id="cell4" bgcolor="DarkGray">gender</th>
          <th id="cell5" bgcolor="DarkGray">address</th>
           <th id="cell6" bgcolor="DarkGray">phone</th>
          <th  id="cell7" bgcolor="DarkGray">country</th>

        </tr>
        <xsl:for-each select="persons">
        <tr>
           <td><xsl:value-of select="title" /></td>
           <td><xsl:value-of select="slota" /></td>
           <td><xsl:value-of select="slotb" /></td>
           <td><xsl:value-of select="slotc" /></td>
           <td><xsl:value-of select="slotd" /></td>
            td><xsl:value-of select="slote" /></td>
           <td><xsl:value-of select="slotf" /></td>
       <td><xsl:value-of select="slotg" /></td>
         </tr>
        </xsl:for-each>
      </table>

以上是 XSL 文件创建表和使用for-each 循环插入数据的代码。

我创建了一个使用 JavaScript 显示对话框消息框的函数,这里的代码如下:

<script>
    function myFunction()
    {

      alert ("I am an alert box");
      }
      </script>

当我将此函数放在一个表格单元格中时,我会触发它,例如:

<td onclick="myFunction()"><xsl:value-of select="slota" /></td>.

该函数适用于该行中的每个表格单元格。

有没有办法可以将此函数应用于特定行? 还是因为我使用for-each 循环来创建表?

【问题讨论】:

  • “有没有办法可以将此函数应用到一个特定的行?” 您的问题不清楚:在您的示例中,XML 输入只有一行。 可以onclick 属性仅应用于特定行的单元格 - 但是如何识别该行?

标签: javascript html xml xslt


【解决方案1】:

考虑使用 Jquery 来处理这类事情。 Jquery 是一个 JavaScript 框架。

您可以为特定表格中的表格单元格创建click event。一个例子:

$('table tr td').click(function()
{
    alert('I am an alert box');
});

还值得注意的是,您可以将逻辑应用于此事件的选择器,以仅选择具有特定类或属性值的单元格。 'table tr td' 是选择器。如果您只想选择具有“foo”类的单元格,您可以编写:“table tr td.foo”。

【讨论】:

  • 您好,感谢您的回复。假设我希望选择器选择一个标题为“name”的列,而单元格“Abraham”我必须把它写成:“table tr td.abraham”?
  • table tr td.abraham 将选择任何具有“abraham”类的 td 元素。它不会考虑标题,因为它们没有链接。你需要做的是(对于每一列)它是什么类型。所以在第二列为每个单元格添加一个类,“名称”。你到底想达到什么目的?
  • 我想要实现的是,当单击一个单元格时,我希望它显示一个对话框消息框。我希望不同的单元格显示不同的消息,所以我试图选择特定的单元格来执行此操作。我希望这是有道理的。谢谢您的宝贵时间。
  • 最简单的方法(如果我理解正确的话)(你想根据它的列标题显示一条消息)。您应该通过类名定义每个单元格。有更高效的代码方法(例如通过索引),但这对您来说是最简单的。
  • 所以简单地说... 然后使用我上面的点击事件根据那个类名进行选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-03
  • 2013-01-14
  • 2021-11-27
  • 2015-10-14
相关资源
最近更新 更多