HTMLコメントに特定のテキストを含むHTML要素を見つけるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/611662

質問

jQueryを使用して<!> lt; td <!> gt;を識別しようとしています。特定のHTMLコメントテキストを含む要素。標準の<!> quot;:contains <!> quot;セレクタはコメントを調べていないようです。ここでの私のコンテキストは、同じtd要素にコンテンツを動的に追加したいということです。ターゲットtdのサンプルを次に示します。

<TD valign="top" class="ms-formbody" width="400px">
        <!-- FieldName="Title"
             FieldInternalName="Title"
             FieldType="SPFieldText"
          -->
            <span dir="none">
        <input name="ctl00$m$g_0b1e4ca3_9450_4f3e_b3af_8134fe014ea5$ctl00$ctl04$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$TextField" type="text" maxlength="255" id="ctl00_m_g_0b1e4ca3_9450_4f3e_b3af_8134fe014ea5_ctl00_ctl04_ctl00_ctl00_ctl00_ctl04_ctl00_ctl00_TextField" title="Title" class="ms-long" /><br>
    </span>


        </TD>

このhtmlは、SharePointによって新しいリストアイテムフォームの一部として生成されます。ドキュメント内で<!> quot; FieldInternalName <!> quot;のtdを本当に見つけたいです。コメント内の一部のテキスト文字列と一致します。これらのtd要素を最適に見つけるためにjQuery(または、javascriptでも問題ありません)を使用するにはどうすればよいですか?

役に立ちましたか?

解決

要素のinnerHTMLを取得し、その上で正規表現を実行できます。

例:

// HTML: <div id="myElement">Lorem <!-- a comment --> ipsum.</div>

var element = document.getElementById('myElement');
alert(element.innerHTML); // alerts "Lorem <!-- a comment --> ipsum."
// here you could run a regular expression

更新:より包括的な例(jQueryを使用):

var tds = $('td'), match;
tds.each(function(index, element) {
    match = $(element).innerHTML.match(/FieldInternalName="(^["])"/);
    if (match) alert(match);
});

他のヒント

if(document.getElementById('myElement').innerHTML.indexOf(text_string) != -1) { //do something }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top