jquery获取输入字段的id

时间:2013-02-15 15:19:38

标签: javascript jquery sharepoint

我需要获取位于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);

但它不起作用。 有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:7)

你可能想要这个:

var id = $('#idEstablishmentRow td.ms-formbody span input').attr('id');

但由于您的HTML没有任何ID为idEstablishmentRow的元素,因此很难确定您想要的是什么。

Demonstration

答案 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');