我创建了一个表来在 <td>
中显示我的 SPARQL 查询结果,结果确实显示,但我希望它在 <td>
时显示(结果)被点击它显示一个消息框。现在一个额外的<td>
显示在顶部,它只适用于那个特定的。单击实际结果时似乎没有任何反应 <td>
:
我的代码:
<table id="results">
<td class="td" onclick="myFunction()"></td>
</table>
<body>
<script type="text/javascript">
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
SELECT ?country_name
WHERE {
?country rdf:type type:Country108544813.
?country rdfs:label ?country_name.
}
"Limit 1"
].join(" ");
alert("this query: [" + query + "]");
var queryUrl = url + "?query=" + encodeURIComponent(query) + "&format=json";
</body>
JavaScript 代码是从网上找来的所以还在摸索,主要用途是显示查询结果。是的,非常感谢您的回答,感谢您的阅读:)
最佳答案
所以首先,您的 html 有点偏离......您的表格在标签之外,而它应该在标签内:(注意 td 通常也会在标签内)
<body>
<table id="results">
<tr><td class="td" onclick="myFunction()"></td></tr>
</table>
<script type="text/javascript">
....
但更准确地说,对于您的问题:您已经创建了一个 单元格,并且仅向它附加了一个 onclick 事件处理程序。您获取的 javascript 代码实际上将新行和单元格添加到表中,而这些行和单元格没有分配 onclick 处理程序。
所以我会尝试这样的事情:
<script type="text/javascript">
var table = $("#results");
table.on("click", "td", myFunction); // <-- magic!
var url = "http://dbpedia.org/sparql";
“魔法”行是甜蜜的部分:它将处理程序附加到整个 表上,但通过“td”选择器过滤事件。动态添加 DOM 元素时的理想选择...
然后你不需要设置你的初始 td,然后在你的表格顶部是空的并且可以点击......相反,只需在你的页面上放置一个空表格:
<body>
<table id="results"></table>
<script type="text/javascript">
....
希望这对您有所帮助!
关于javascript - 如何使 <td> 可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41192540/