2009-10-22 4 views
0

Je le scénario suivant:Comment trouver une valeur dans une page Web entre crochets à l'aide de JQuery?

J'ai 5 valeurs possibles sur une page:

[value 1] 
... 
[value 5] 

Ce que je veux faire est de saisir chaque valeur et les supports ...

Exemple Contenu:

<p>velit, sed quia non numquam eius modi tempora incidunt ut labore et 
dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, 
quis nostrum exercitationem ullam [value 1] corporis suscipit laboriosam, nisi 
ut aliquid ex ea commodi consequatur? Quis autem vel eum iure 
reprehenderit qui in ea voluptate</p> 

... et passer à une autre partie de la page, disons que dans l'en-tête.

À quel point est-ce difficile?

+0

Quelle est la plage dans laquelle le texte peut être trouvé? – Ikke

+0

comment voulez-vous dire par gamme? Les valeurs ne seront jamais qu'à l'intérieur d'une balise de paragraphe – user179115

Répondre

3

Si vous n'avez pas besoin de savoir d'où il vient, vous pouvez utiliser $ ('body'). Text() pour extraire tout le texte du site web, puis regexp pour trouver les éléments.

var text = $('body').text(); 
var m = new Regexp('\[([^\]])+\]').exec(); 
$.each(m, function(index, value){ 
    //add value to header 
} 

Btw, ce code n'a pas été testé, et sur des sites de grande taille, cela pourrait prendre longtemps. Essayez de réduire autant que possible la portée (en passant un autre élément à la place du corps)

0

Vous pouvez obtenir le contenu html, et faire une expression régulière sur cette chaîne, ou depuis que vous avez seulement 5 possibilités, vous pouvez simplement le faire comme jQuery plus lent plus facile:

var possibilities = ['[value 1]', '[value 2]', '[value 3]', '[value 4]', '[value 5]']; 

for(var i in possibilities){ 
    if ($(":contains('" + possibilities[i] + "')").length) { 
    alert(possibilities[i] + ' was found'); 
    } 
} 

Cela pourrait être le plus solution simple à suivre, en fonction de votre confort avec les différentes parties de jQuery et regex.

Questions connexes