Javascript 获取隐藏跨距标记的文本值

Javascript 获取隐藏跨距标记的文本值,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个包含数据列(姓名、年龄、电子邮件)的表,我有一个隐藏的单一模式窗口,只有当用户单击每行旁边的“详细信息”时才会显示 需要在模式中填充的数据位于隐藏的span标记中,该标记包含诸如hide name等类 HTML: 此在您的代码中指的是.btn review元素而不是tr,您应该首先选择最接近的tr元素: var name = $(this).closest('tr').find('span.hidden-name').text(); 编辑:您的标记无效,tr元素只能有td子元素,您应该

我有一个包含数据列(姓名、年龄、电子邮件)的表,我有一个隐藏的单一模式窗口,只有当用户单击每行旁边的“详细信息”时才会显示

需要在模式中填充的数据位于隐藏的span标记中,该标记包含诸如hide name等类

HTML:


在您的代码中指的是
.btn review
元素而不是
tr
,您应该首先选择最接近的
tr
元素:

var name = $(this).closest('tr').find('span.hidden-name').text();
编辑:您的标记无效,
tr
元素只能有
td
子元素,您应该用
td
元素包装span元素,浏览器将以不同方式呈现此标记。更改标记后,上述代码段应该可以工作

我建议将
span
s移动到
td
元素,该元素将按钮作为其子元素,然后使用
$(this).sides('span.hidden name').text()
,这比使用
最近的
然后使用
查找
更有效

<tr class="xrow row-2">
    <td>Fisher, Baker</td>
    <td>2 notes</td>
    <td>
       <a href="#" class="btn btn-primary btn-sm btn-review" data-toggle="modal" data-target="#reviewMeetingModal">Review</a>
       <span class="hide hidden-name">Fisher, Baker</span>
       <span class="hide hidden-date">2014-03-20</span>
       <span class="hide hidden-time">14:00:00</span>
    </td>
</tr>

费希尔,贝克
2注
费希尔,贝克
2014-03-20
14:00:00

我想我已经知道你想要什么了:

$('.xrow').click(function () {
    var name = $(this).find('span.hidden-name').text();
})

您只需在单击的元素的内容中搜索所需的元素。

您应该使用任何td来包装跨度。比如上个月

<td>
<a href="#" class="btn btn-primary btn-sm btn-review" data-toggle="modal" data-target="#reviewMeetingModal">Review</a>

<span class="hide hidden-name">Fisher, Baker</span>
<span class="hide hidden-date">2014-03-20</span>
<span class="hide hidden-time">14:00:00</span>
</td>

选择器是否更合适?@Imran嗯,我还没有看到标记。如果按钮是
td
的子元素,则
parent()
方法选择父
td
元素。如果目标元素是另一个同级
td
元素的子元素,则还应使用
同级
方法<代码>$(this).parent().sibbines().find(…).text()
我尝试了答案中建议的代码,但不起作用。我还尝试过使用
.nestest('span.hidden name')
,但没有成功however@Imran您是否更改了无效的标记<代码>最近的
将选择最近的指定父元素。我建议将span移动到
td
元素,该元素将按钮作为其子元素,然后使用
$(this.sillides('span.hidden name'))
这比使用
最近的
然后使用
查找
更有效。请更新以上注释的答案,以便我将其标记为正确答案。请发布相关标记。@undefined请检查post您的html无效-如果这些跨距是表的一部分,请将它们也包装在td中。这是初始代码我有,但未定义指出,这将调用
.btn review
,而不是
tr
,因此我进行了修改。
$('.xrow').click(function () {
    var name = $(this).find('span.hidden-name').text();
})
<td>
<a href="#" class="btn btn-primary btn-sm btn-review" data-toggle="modal" data-target="#reviewMeetingModal">Review</a>

<span class="hide hidden-name">Fisher, Baker</span>
<span class="hide hidden-date">2014-03-20</span>
<span class="hide hidden-time">14:00:00</span>
</td>
$('.xrow').on("click", '.btn-review', function () {
    var name = $(this).parents('.xrow').find('span.hidden-name').text();
    alert(name);
});