Como posso encontrar elementos HTML que contêm texto específico em um comentário HTML?
-
03-07-2019 - |
Pergunta
Eu estou tentando usar jQuery para identificar
<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>
Esta html é gerado pelo SharePoint como parte de uma nova forma item da lista, e eu realmente quero encontrar o td no meu documento cuja "FieldInternalName" no comentário corresponda a algum cadeia de texto. Como posso usar jQuery (ou qualquer javascript seria realmente bem) para melhor encontrar esses elementos td?
Solução
Você poderia pegar o innerHTML
do elemento e executar uma expressão regular sobre ele.
Exemplo:
// 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
Update: um exemplo mais abrangente (com jQuery):
var tds = $('td'), match;
tds.each(function(index, element) {
match = $(element).innerHTML.match(/FieldInternalName="(^["])"/);
if (match) alert(match);
});
Outras dicas
if(document.getElementById('myElement').innerHTML.indexOf(text_string) != -1) { //do something }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow