我需要获取位于sharepoint列表范围内的输入的id。 它看起来像下面的代码。
<tr id="idEstablishmentRow">
<td class="ms-formbody" vAlign="top">
<span dir="none">
<span style="vertical-align: middle;">
<input type='text' id='hello' />
</span>
</span>
</td>
</tr>
现在我想得到输入的id。 我试过了:
var _test = $('#idEstablishmentRow').find('td.ms-formbody');
var _test1 = _test.find('span.style');
var _test2 = _test1.find('input');
var _test3 = _test2.attr('id');
alert(_test3);
alert(_test2);
但它不起作用。 有人可以帮帮我吗?
答案 0 :(得分:7)
你可能想要这个:
var id = $('#idEstablishmentRow td.ms-formbody span input').attr('id');
但由于您的HTML没有任何ID为idEstablishmentRow
的元素,因此很难确定您想要的是什么。
答案 1 :(得分:0)
var inputId = $("span input").attr("id");
答案 2 :(得分:0)
由于此选择器,您的代码段不起作用:var _test1 = _test.find('span.style');
执行此操作时,您尝试使用css类“style”而不是html属性样式查找span。因此_test1
是空的。
您可以执行以下操作来修复它:var _test1 = _test.find('span[style]');
虽然它不是一个好的选择器,因为如果你改变css以将它从内联中移除它很可能会破坏。
您可以在范围<span class="aclass"></span>
中添加一个类。这样您可以通过以下选择器选择它:var _test1 = _test.find('span.aclass');
如果它始终是第二个孩子,您也可以通过其他方式选择var _test1 = _test.find('span:nth-child(2)');
。
这些只是与_test2
和_test3
var _test1 = _test.find('span input');
或_test.find('span').children('input')
选择包含输入的所有范围。然后,您可以执行_test3
。请注意,您可以将选择器重新组合为一行:
这样做的好处是不必在跨度上放置一个类,因为实际上你不仅要查询跨度,还要查询带有输入的跨度。
$('tr#idEstablishmentRow td.ms-formbody span input');
//or to get the id directly
$('tr#idEstablishmentRow td.ms-formbody span input').attr('id');