3

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);

しかし、それは機能しませんでした。誰かが私を助けることができますか?

4

3 に答える 3

12

あなたはこれが欲しいかもしれません:

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

しかし、HTML には ID が である要素がないため、idEstablishmentRow正確に何が必要かを確認するのは困難です。

デモンストレーション

于 2013-02-15T15:21:24.377 に答える
1
var inputId = $("span input").attr("id");
于 2013-02-15T15:22:34.427 に答える
0

このセレクターが原因で、スニペットが機能しません。var _test1 = _test.find('span.style');

これを行うときは、html属性スタイルではなくcssクラス「style」でスパンを見つけようとします。したがって_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)');また、常に2番目の子である場合など、他の方法で選択することもできます。

_test2これらは、あなたと一緒に行くことができる複数の可能な解決策のうちの2つにすぎません_test3

  • var _test1 = _test.find('span input');またはを使用して、入力を含むすべてのスパンを選択することもできます_test.find('span').children('input')。その後、あなたはあなたをすることができます_test3

セレクターを1行で再グループ化できることに注意してください。

これには、実際にはスパンだけでなく、入力を含むスパンについてもクエリを実行するため、スパンにクラスを配置する必要がないという利点があります。

$('tr#idEstablishmentRow td.ms-formbody span input');

//or to get the id directly
$('tr#idEstablishmentRow td.ms-formbody span input').attr('id');
于 2013-02-15T18:27:41.857 に答える