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>标签:

javascript - jQuery .closest(“tr”)无法正常工作-LMLPHP

如果将HTML包装在<table>中,则您的JavaScript可以正常运行。

关于javascript - jQuery .closest(“tr”)无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34008142/

10-13 01:40