كيف يمكنني العثور على عناصر html التي تحتوي على نص محدد في تعليق html؟
-
03-07-2019 - |
سؤال
أحاول استخدام jQuery لتحديد عناصر <td> التي تحتوي على نص تعليق HTML محدد.يبدو أن المحدد القياسي ": يحتوي على" لا يبحث في التعليقات.السياق الخاص بي هنا هو أنني أريد إضافة بعض المحتوى ديناميكيًا إلى نفس عنصر 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 كجزء من نموذج عنصر قائمة جديد، وأريد حقًا العثور على td في المستند الذي يتطابق "FieldInternalName" في التعليق معه مع بعض السلاسل النصية.كيف يمكنني استخدام jQuery (أو أي جافا سكريبت سيكون جيدًا حقًا) للعثور على عناصر td هذه بشكل أفضل؟
المحلول
هل يمكن الاستيلاء على 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 }
لا تنتمي إلى StackOverflow