包装 html 标签,使所有标签都可点击
wrap html tags to make all clickable
我希望将整行变为可点击。现在这些行看起来像
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<label for="object_303">
<td><input checked="checked" id="object_303" name="objects" type="checkbox"/></td>
<td>Group</td>
<td>Obj name</td>
</label>
</tr>
</table>
这似乎与 http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_label_default_css 正确匹配,显示了标签中的包装如何使其全部可点击。
如何将整行换行以便可以点击?萨拉马特
再仔细看一遍。您的代码与 w3c 不匹配,您不需要用 label 标记包装元素。
标签的 for
属性和输入的 id
应该匹配。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td><input checked="checked" id="object_303" name="objects" type="checkbox"/></td>
<td><label for="object_303"> Group obj name</label></td>
</tr>
</table>
您的 HTML 已损坏...只有 thead、tbody 或 tr 应位于 table 内。里面的tr应该是td。正如@Pointy 建议的那样,在 tr 标记中放置 class 会引用整行。我修改了您的代码,请参见下文,并注意 <label>
标签的位置。
<table>
<tr class="myclass">
<td>
<label for="object_303">
<input checked="checked" id="object_303" name="objects" type="checkbox"/>
</label>
</td>
<td>Group</td>
<td>Obj name</td>
</tr>
</table>
和jquery:
$(".myclass").click( myFunction );
您可以在顶部添加一些 jQuery 来完成此操作。试试这个:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#row1").click(function() {
($(this).find(":checkbox").prop("checked", !$(this).find(":checkbox").prop("checked")));
});
});
</script>
<table>
<tr id="row1">
<td><input checked="checked" id="object_303" name="objects" type="checkbox"/></td>
<td>Group</td>
<td>Obj name</td>
</tr>
</table>
您也可以通过更改 jquery 选择器来概括这一点。如果您希望所有 <tr>
都以这种方式运行,只需将 "#row1"
选择器更改为 tr
.
我希望将整行变为可点击。现在这些行看起来像
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<label for="object_303">
<td><input checked="checked" id="object_303" name="objects" type="checkbox"/></td>
<td>Group</td>
<td>Obj name</td>
</label>
</tr>
</table>
这似乎与 http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_label_default_css 正确匹配,显示了标签中的包装如何使其全部可点击。
如何将整行换行以便可以点击?萨拉马特
再仔细看一遍。您的代码与 w3c 不匹配,您不需要用 label 标记包装元素。
标签的 for
属性和输入的 id
应该匹配。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td><input checked="checked" id="object_303" name="objects" type="checkbox"/></td>
<td><label for="object_303"> Group obj name</label></td>
</tr>
</table>
您的 HTML 已损坏...只有 thead、tbody 或 tr 应位于 table 内。里面的tr应该是td。正如@Pointy 建议的那样,在 tr 标记中放置 class 会引用整行。我修改了您的代码,请参见下文,并注意 <label>
标签的位置。
<table>
<tr class="myclass">
<td>
<label for="object_303">
<input checked="checked" id="object_303" name="objects" type="checkbox"/>
</label>
</td>
<td>Group</td>
<td>Obj name</td>
</tr>
</table>
和jquery:
$(".myclass").click( myFunction );
您可以在顶部添加一些 jQuery 来完成此操作。试试这个:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#row1").click(function() {
($(this).find(":checkbox").prop("checked", !$(this).find(":checkbox").prop("checked")));
});
});
</script>
<table>
<tr id="row1">
<td><input checked="checked" id="object_303" name="objects" type="checkbox"/></td>
<td>Group</td>
<td>Obj name</td>
</tr>
</table>
您也可以通过更改 jquery 选择器来概括这一点。如果您希望所有 <tr>
都以这种方式运行,只需将 "#row1"
选择器更改为 tr
.