http://jsfiddle.net/yjxq7bae/1/
我正在尝试在输入标签中选择复选框prop。输入标签的ID和名称已被重用,因此我必须使用<nobr>
文本来缩放dom并获取值。
<tr>
<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
<h3 class="ms-standardheader">
<nobr>Confirmation Sent</nobr>
</h3>
</td>
<td valign="top" class="ms-formbody">
<span dir="none">
<input id="ctl00_m_g_ed53ee23_de9d_4105_ba24_00e2a21cef5e_ctl00_ctl05_ctl50_ctl00_ctl00_ctl04_ctl00_ctl00_BooleanField" type="checkbox" name="ctl00$m$g_ed53ee23_de9d_4105_ba24_00e2a21cef5e$ctl00$ctl05$ctl50$ctl00$ctl00$ctl04$ctl00$ctl00$BooleanField" checked="checked" /><br />
</span>
</td>
</tr>
<div>Click Here</div>
我尝试了所有可能的方法。如果您会发现
.closest()
失败了,那么我又从<h3>
元素中又提出了一个。小提琴通过先更改h3的css,然后尝试隐藏td来演示此操作。var mop = $('nobr').filter(function () {
return $(this).text() === 'Confirmation Sent'
}).closest("tr").find("input[type=checkbox]").prop('checked');
alert(typeof mop);
$('nobr:contains(Confirmation Sent)').closest("h3").css("background", "yellow");
$('nobr:contains(Confirmation Sent)').closest("h3").closest("td").hide();
$('div').on("click ", function (event) {
var toast = $('nobr').filter(function () {
return $(this).text() === 'Confirmation Sent'
}).closest("tr").find("input[type='checkbox']").prop('checked');
alert(typeof toast);
});
最佳答案
问题是您没有正确的表语法。您在行周围缺少<table>
和</table>
标记。
由于该表无效,因此浏览器会丢弃您的<tr>
和<td>
标签:
如果将HTML包装在<table>
中,则您的JavaScript可以正常运行。
关于javascript - jQuery .closest(“tr”)无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34008142/