我需要使用class = ustatus
到达span标记,并为id = foo
获取jQuery对象。
<tr>
<td> <input name = 'user' type='radio 'id='foo'/> </td>
<td> <input id='boo'/> </td>
<td> <input id='too'/> </td>
<td> <input id='yoo'/> </td>
<td> <span class='ustatus'> Active </span> </td>
</tr>
我当时想:
$("input[name = 'user']:checked").closest('td').find('.ustatus').first().val()
但获取undefined
作为值。我在哪里弄错了?
答案 0 :(得分:2)
您需要使用
$("input[name = 'user']:checked").closest('tr').find('.ustatus:first').text()
因为,ustatus
是您的嫌疑人td
的兄弟姐妹。因此,您需要首先遍历父tr
。然后,您可以使用find()
方法,该方法将搜索子元素
答案 1 :(得分:2)
您的代码中的几个问题:
1)你需要遍历tr而不是td。 as span位于所选单选按钮parent td
的兄弟td之一 2)span元素具有与之关联的text / html属性而非value.you需要使用.text()
/ .html()
而不是.val()
3)因为tr中只有一个ustatus元素,所以你不需要.first()
选择器。
$("input[name='user']:checked").closest('tr').find('.ustatus').text()
答案 2 :(得分:0)
span没有值,您需要使用text()或html()
var text = $("input[name = 'user']:checked").parent().parent().find('.ustatus').text();
或
var html = $("input[name = 'user']:checked").parent().parent().find('.ustatus').html() ;
由于您的锚点是输入,因此您需要升级到tr
,在那里您可以找到具有类td
的{{1}},因此您需要添加2 {{1} }}
答案 3 :(得分:0)
您正在定位单元格,然后尝试使用val()
找到第一个订单的“.ustatus”类以获取html内容/值$("input[name = 'user']:checked").closest('td').find('.ustatus').first().val()
val()
用于获取表单字段的值。
使用text()
或html()
分别获取纯文本内容或包含标签。
$("input[name ='user']:checked").closest('tr').find('.ustatus:first').text()
可行,因为我们在行中找到.ustatus:first
并使用text()
获取内容。