Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 区分HTML<;p>;使用JQuery/JS_Javascript_Jquery_Html - Fatal编程技术网

Javascript 区分HTML<;p>;使用JQuery/JS

Javascript 区分HTML<;p>;使用JQuery/JS,javascript,jquery,html,Javascript,Jquery,Html,这是我的问题:我有一堆HTML。 例如: 巴黎伦敦纽约 当我想在单击某个特定的时获取它的文本时,我会这样做(使用JQuery) 它让我回到了巴黎。 而不是的特定文本 你知道为什么吗 恭敬地 这里是确切的HTML <!DOCTYPE html> <html lang="fr"> <head> <title>My News</title> <meta http-equiv="content-type" content=

这是我的问题:我有一堆
HTML。 例如:
巴黎

伦敦

纽约

当我想在单击某个特定的
时获取它的文本时,我会这样做(使用JQuery)

它让我回到了巴黎。 而不是
的特定文本

你知道为什么吗

恭敬地

这里是确切的HTML

<!DOCTYPE html>
<html lang="fr">
<head>
    <title>My News</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <link rel="shortcut icon" type="image/x-icon" href="favicon-js.ico">
    <link rel="stylesheet" type="text/css" media="screen" href="news.css">
</head>
<body onload="init();">
    <header>
        <img id="banniere" src="img/job.png"/>
    </header>
    <!--HERE -->
    <div id="recherches">
        <h3 class="titre"> recherches stockées</h3>
        <div id="recherches-stockees">
        </div>

        <h3 class="titre">nouvelle recherche</h3>
        <div id="nouvelle-recherche">
                <input type="text" name="zone_saisie" id="zone_saisie"/>
            <img id="disk" class="icone-disk" src="img/disk30.jpg" onclick="ajouter_recherche()" />
            <BR/>
            <input id="bouton_recherche"type="button" value="OK" onclick="rechercher_nouvelles()"/>
        </div>
    </div>

    <div id="zone-centrale">
        <div id="resultats-container">
            <h3 class="titre">résultat</h3>
            <div id="wait"></div>
            <div id="resultats"></div>
        </div>
    </div>

    <!-- Inclusion des librairies jQuery & Scripts JS -->
    <script
        src="https://code.jquery.com/jquery-3.4.1.js"
        integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
        crossorigin="anonymous"></script>
    <script
            src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"
            integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU="
            crossorigin="anonymous"></script>
    <script src="scripts/jquery.cookie.js"></script>

    <script src="scripts/util.js"></script>
    <script src="scripts/news.js"></script>

</body>
</html>


我的消息
回收存货
新里切赫酒店

苏丹
这里是确切的JS

// Tableau contenant des chaines de caractères correspondant aux recherches stockées
var recherches = [];
// Chaine de caractères correspondant à la recherche courante
var recherche_courante;
// Tableau d'objets de type resultats (avec titre, date et url)
var recherche_courante_news = [];

/*class Paragraphe{
    constructor(id,value){
        this.id = id;
        this.value = value;
    }
}*/


/*1.1 */    
//si clic sur l'image disk alors ajout chaine au tableau recherches[]
//function ajouter_recherche()
function ajouter_recherche(){
    //recuperer la chaine de carachtere
    //verifier si dans recherches, il y a la meme recherche
    const donneeEntree = $("#zone_saisie").val();
    if(recherches.indexOf(donneeEntree) == -1){
        recherches.push(donneeEntree);
        //ajouter l'element aux recherches stockées
        $("#recherches-stockees").prepend('<p class="titre-recherche" ><label onclick=selectionner_recherche(this)>'+donneeEntree+'</label><img src="images/croix30.jpg" class="icone-croix " onclick="supprimer_recherche(this)"/></p>');
        //sauvegarde dans sessionStorage(plus de place que cookie) pour conserver les recherches deja effectuées
        localStorage.setItem("recherches",JSON.stringify(recherches));
    }
    //si clic sur le label => selectionner_recherche(this)
    //si clic sur croix => supprimer_recherche(this)
}


function supprimer_recherche(elt) {
    //supprimer l'element p dans recherches-stockees
    $(elt).parent().remove();


    //  localStorage.clear(); == localStorage.removeItem("recherches");
    //supprimer la recherche du tableau recherches[]
    const indexSupprimer = recherches.indexOf($(elt).parent().parent().val());
    recherches.splice(indexSupprimer);
    //supprimer dans localstorage aussi
    //localStorage.removeItem(this);
    //c'est moche A REFAIRE
    localStorage.setItem("recherches",JSON.stringify(recherches));
}

//controller
function selectionner_recherche(elt) {
    $("#zone_saisie").val("");
    $("#resultats").empty();
    //jquery ??????
    $("#zone_saisie").val(elt.innerText); 
    recherche_courante = elt.innerText;

    //variable globale recherche_courante_news => cookie
    //localstorage.getItem => recuperer le "cookie" === nom de la recherche
    recherche_courante_news = JSON.parse(localStorage.getItem($("#zone_saisie").val()));
    //affichage des recherche sauvegardées dans la zone resultats
    $.each(recherche_courante_news,function(index,value){
        $("#resultats").append('<p class="titre_result"><a class="titre_news" href='+decodeHtmlEntities(value.url)+
        ' target="_blank">'+decodeHtmlEntities(value.titre)+
        '</a><span class="date_news">'+decodeHtmlEntities(value.date)+'</span><span class="action_news" onclick="sauver_nouvelle(this)"><img src="img/horloge15.jpg"/></span></p>'); 
    });

}



//model
function init() {
    //recuperer les données du stockage local
    let obj_json = localStorage.getItem("recherches");
    let obj = JSON.parse(obj_json);
    if(obj != ""){
        $(obj).each(function(index,value){
            recherches.push(value);
            $("#recherches-stockees").prepend('<p class="titre-recherche" ><label onclick=selectionner_recherche(this)>'+value +'</label><img src="images/croix30.jpg" class="icone-croix " onclick="supprimer_recherche(this)"/></p>');
        });
    }
    //on remplit la partie recherches-stockées de ces données


}

//model
function rechercher_nouvelles() {
    //faire une requeste get ? !!!pas secure!!! avec les données de recherche_courante ? ou direct avec value ?
    //on nettoye la zone de resultat pour eviter d'afficher encore et encore
    $("#resultats").empty();
        $("#wait").css("display","block");
        const data = $("#zone_saisie").val();
        //.get est asynchrone
        $.get("https://carl-vincent.fr/search-internships.php?data="+data,maj_resultats);
    //vider recherche_couraznt_news sinon tout les cookies se superposeront ( 1: coucou ..... 2 : coucou, salut)
    recherche_courante_news = []; //argh c moche
    //et on la remplis avec le contenu du localstorage de la recherche en question
    //on ne peut pas utiliser $("#zone_saisie").val() car si l'utilisateur change la recherche mais veut quand m
    //même faire l'action alors ça marchera pas => exemple impossible d'acceder à l'element car non existant
    //il faudrait récuperer le label sur la recherche_saved sur laquelle on clic
/*  recherche_courante_news = JSON.parse(localStorage.getItem($("#recherches-stockees").click(function(){
        return $(this).text();
    })
    ));*/
    /*$("#recherches-stockees > p").click(function(){
        console.log($(this).text());
        alert("yes");
    })*/

//HERE/////////////////////////////////////////

    $('#recherches-stockees > p').on('click', function() {
        console.log($(this).text());
    });

}


//function callback => si jamais la requete ajax get reussis alors on fait celle ci
//view
function maj_resultats(res) {
    $("#wait").css("display","none");

    //res est un objet de plusieurs offres, on veut toute les afficher dans la case resultat
    $(res).each(function(index,value){
        $("#resultats").append('<p class="titre_result"><a class="titre_news" href='+decodeHtmlEntities(value.url)+
        ' target="_blank">'+decodeHtmlEntities(value.titre)+
        '</a><span class="date_news">'+decodeHtmlEntities(value.date)+'</span><span class="action_news" onclick="sauver_nouvelle(this)"><img src="img/horloge15.jpg"/></span></p>'); 
    });


}

//manque : creer un objet à envoyer 
//delete dans recherche_courante_news   

function sauver_nouvelle(elt) {
    //parentElement => titre
    let obj = {
        "titre" : $(elt).parent().find("a").text(),
        "date" : $(elt).parent().find(".date_news").text(),
        "url" : $(elt).parent().find("a").attr('href')
    }
    //$(elt).firstChild.attr("src","");
    //$(elt).attr("src","img/disk15.jpg");
    $(elt).html("<img src = img/disk15.jpg />");
    $(elt).attr("onclick","supprimer_nouvelle(this)");
    //creer l'objet il faut
    if(indexOfResultat(recherche_courante_news,obj) == -1){
        recherche_courante_news.push(obj);
        localStorage.setItem("recherches_courante_news",JSON.stringify(recherche_courante_news));
    //on a donc 1 cookie par recherche, faire des verif pour pas pouvoir mettre le même plusieurs fois ??
        localStorage.setItem( $("#zone_saisie").val(),JSON.stringify(recherche_courante_news));
    }
}


function supprimer_nouvelle(elt) {
    let obj = {
        "titre" : $(elt).parent().find("a").text(),
        "date" : $(elt).parent().find(".date_news").text(),
        "url" : $(elt).parent().find("a").attr('href')
    }
    //$(elt).attr("src","");
    //$(elt).attr("src","img/horloge15.jpg");
    $(elt).html("<img src = img/horloge15.jpg />");
    $(elt).attr("onclick","sauver_nouvelle(this)");
    if(indexOfResultat(recherche_courante_news,obj) != -1){
        recherche_courante_news.splice(indexOfResultat(obj,recherche_courante_news));
        localStorage.setItem("recherches_courante_news",JSON.stringify(recherche_courante_news));
        localStorage.setItem($("#zone_saisie").val(),JSON.stringify(recherche_courante_news));

    }
}



//Autocompletion
//A chaque Entrée de clavier => keyup, verifier si le mot n'a pas une ressemblance dans le localstorage (recherches sauvegardées)
//Apparement Jquery UI le fait tres bien

//Model et view
var test = ['Grenoble','Lyon','Paris'];
$("#zone_saisie").autocomplete({
    source : recherches,
    focus : true
}).keypress(function(event){
    if(event.keyCode === 13){
        rechercher_nouvelles();
    }
});

//对应于库存的caractères链的内容表
var recherches=[];
//对应于库兰特的卡拉切链
var recherche_courante;
//类型结果表(avec滴定、日期和url)
var recherche_courante_news=[];
/*类段落{
构造函数(id、值){
this.id=id;
这个值=值;
}
}*/
/*1.1 */    
//si clic sur l'image disk alors a a out chaine au tableau recherches[]
//函数ajouther_recherche()
函数ajouther_recherche(){
//卡拉奇泰尔酒店
//验证者是一个记录者,我是一个记忆记录者
const donneentre=$(“#zone_saisie”).val();
if(recherches.indexOf(donneentre)=-1){
推(唐尼中心);
//Ajour l’element aux recherches stockées
美元(“#recherches stockees”).prepend(“

”+donneentre+”

”); //sauvegarde dans sessionStorage(再加上饼干店)将果酱倒入果酱中,以提高果酱的效果 setItem(“recherches”,JSON.stringify(recherches)); } //si clic sur le label=>selectionner_recherche(本) //斯克里克海峡=>Supplimer_recherche(本) } 功能供应商(elt){ //供应元素p dans重新供应存货 $(elt.parent().remove(); //localStorage.clear();==localStorage.removietem(“recherches”); //为您提供一个完整的表格[] const indexsupplier=recherches.indexOf($(elt.parent().parent().val()); 接头(索引供应商); //供应商dans Local Storage aussi //localStorage.removietem(此项); //这是一场重演吗 setItem(“recherches”,JSON.stringify(recherches)); } //控制器 功能选择NER_recherche(英语教学){ 美元(“#赛斯区”).val(“”); $(“#resultats”).empty(); //jquery?????? $(“#zone_saisie”).val(elt.innerText); recherche_courante=elt.innerText; //变量globale recherche\u courante\u news=>cookie //localstorage.getItem=>Receper le“cookie”==名称 recherche_courante_news=JSON.parse(localStorage.getItem($(“#zone_saisie”).val()); //在区域结果中添加蔬菜 $.each(recherche\u courante\u新闻,函数(索引,值){ $(“#resultats”).append(“

”+decodeHtmlEntities(value.date)+“

”); }); } //模型 函数init(){ //当地牲畜饲养场 让obj_json=localStorage.getItem(“recherches”); 让obj=JSON.parse(obj_-JSON); 如果(对象!=“”){ $(对象)。每个(函数(索引、值){ recherches.push(值); 美元(“\recherches stockees”).prepend(“

”+value+”

”); }); } //关于第三方的责任 } //模型 函数rechercher_nouvelles(){ //你要求得到公平?!安全!!!你能直接得到公平价值吗? //再加一次,再加一次 $(“#resultats”).empty(); $(“#等待”).css(“显示”、“块”); const data=$(“#zone_saisie”).val(); //.获取est异步 $.get(”https://carl-vincent.fr/search-internships.php?data=“+数据,主要结果); //vider recherche_couraznt_news sinon吹捧超级甜饼(1:coucou…..2:coucou,致敬) recherche_courante_news=[];//argh c moche //关于问题的本地存储内容 //在ne peut pas USERR$(“#zone_saisie”).val()车辆在使用过程中会发生变化 //même faire l'action alorsça marchera pas=>不可能加入元素汽车不存在的例子 //在clic上,拉奎尔河畔的标签上的浮雕被保存了下来 /*recherche_courante_news=JSON.parse(localStorage.getItem($(“#recherches stockees”)。单击(函数(){ 返回$(this.text(); }) ));*/ /*$(“#recherches stockees>p”)。单击(函数(){ console.log($(this.text()); 警惕(“是”); })*/ //这里///////////////////////////////////////// $('recherches stockees>p')。在('click',function()上{ console.log($(this.text()); }); } //函数回调=>si jamais la requete ajax在fait celle ci上获得重用 //看法 功能主要结果(res){ $(“#等待”).css(“显示”、“无”); //这是一个很好的解决方案,它是一个很好的解决方案 $(分辨率)。每个(函数(索引、值){ $(“#resultats”).append(“

”+decodeHtmlEntities(value.date)+“

”); }); } //曼克:克里尔是联合国特使 //删除dans recherche_courante_新闻 萨乌努维尔函数(elt){ //parentElement=>滴度 设obj={ “titre”:$(elt.parent().find(“a”).text(), “日期”:$(elt.parent().find(“.date\u news”).text(), “url”:$(elt.parent().find(“a”).attr('href')) } //$(elt.firstChild.attr(“src”和“); //$(elt.attr(“src”,“img/disk15.jpg”); $(elt.html(“”);
// Tableau contenant des chaines de caractères correspondant aux recherches stockées
var recherches = [];
// Chaine de caractères correspondant à la recherche courante
var recherche_courante;
// Tableau d'objets de type resultats (avec titre, date et url)
var recherche_courante_news = [];

/*class Paragraphe{
    constructor(id,value){
        this.id = id;
        this.value = value;
    }
}*/


/*1.1 */    
//si clic sur l'image disk alors ajout chaine au tableau recherches[]
//function ajouter_recherche()
function ajouter_recherche(){
    //recuperer la chaine de carachtere
    //verifier si dans recherches, il y a la meme recherche
    const donneeEntree = $("#zone_saisie").val();
    if(recherches.indexOf(donneeEntree) == -1){
        recherches.push(donneeEntree);
        //ajouter l'element aux recherches stockées
        $("#recherches-stockees").prepend('<p class="titre-recherche" ><label onclick=selectionner_recherche(this)>'+donneeEntree+'</label><img src="images/croix30.jpg" class="icone-croix " onclick="supprimer_recherche(this)"/></p>');
        //sauvegarde dans sessionStorage(plus de place que cookie) pour conserver les recherches deja effectuées
        localStorage.setItem("recherches",JSON.stringify(recherches));
    }
    //si clic sur le label => selectionner_recherche(this)
    //si clic sur croix => supprimer_recherche(this)
}


function supprimer_recherche(elt) {
    //supprimer l'element p dans recherches-stockees
    $(elt).parent().remove();


    //  localStorage.clear(); == localStorage.removeItem("recherches");
    //supprimer la recherche du tableau recherches[]
    const indexSupprimer = recherches.indexOf($(elt).parent().parent().val());
    recherches.splice(indexSupprimer);
    //supprimer dans localstorage aussi
    //localStorage.removeItem(this);
    //c'est moche A REFAIRE
    localStorage.setItem("recherches",JSON.stringify(recherches));
}

//controller
function selectionner_recherche(elt) {
    $("#zone_saisie").val("");
    $("#resultats").empty();
    //jquery ??????
    $("#zone_saisie").val(elt.innerText); 
    recherche_courante = elt.innerText;

    //variable globale recherche_courante_news => cookie
    //localstorage.getItem => recuperer le "cookie" === nom de la recherche
    recherche_courante_news = JSON.parse(localStorage.getItem($("#zone_saisie").val()));
    //affichage des recherche sauvegardées dans la zone resultats
    $.each(recherche_courante_news,function(index,value){
        $("#resultats").append('<p class="titre_result"><a class="titre_news" href='+decodeHtmlEntities(value.url)+
        ' target="_blank">'+decodeHtmlEntities(value.titre)+
        '</a><span class="date_news">'+decodeHtmlEntities(value.date)+'</span><span class="action_news" onclick="sauver_nouvelle(this)"><img src="img/horloge15.jpg"/></span></p>'); 
    });

}



//model
function init() {
    //recuperer les données du stockage local
    let obj_json = localStorage.getItem("recherches");
    let obj = JSON.parse(obj_json);
    if(obj != ""){
        $(obj).each(function(index,value){
            recherches.push(value);
            $("#recherches-stockees").prepend('<p class="titre-recherche" ><label onclick=selectionner_recherche(this)>'+value +'</label><img src="images/croix30.jpg" class="icone-croix " onclick="supprimer_recherche(this)"/></p>');
        });
    }
    //on remplit la partie recherches-stockées de ces données


}

//model
function rechercher_nouvelles() {
    //faire une requeste get ? !!!pas secure!!! avec les données de recherche_courante ? ou direct avec value ?
    //on nettoye la zone de resultat pour eviter d'afficher encore et encore
    $("#resultats").empty();
        $("#wait").css("display","block");
        const data = $("#zone_saisie").val();
        //.get est asynchrone
        $.get("https://carl-vincent.fr/search-internships.php?data="+data,maj_resultats);
    //vider recherche_couraznt_news sinon tout les cookies se superposeront ( 1: coucou ..... 2 : coucou, salut)
    recherche_courante_news = []; //argh c moche
    //et on la remplis avec le contenu du localstorage de la recherche en question
    //on ne peut pas utiliser $("#zone_saisie").val() car si l'utilisateur change la recherche mais veut quand m
    //même faire l'action alors ça marchera pas => exemple impossible d'acceder à l'element car non existant
    //il faudrait récuperer le label sur la recherche_saved sur laquelle on clic
/*  recherche_courante_news = JSON.parse(localStorage.getItem($("#recherches-stockees").click(function(){
        return $(this).text();
    })
    ));*/
    /*$("#recherches-stockees > p").click(function(){
        console.log($(this).text());
        alert("yes");
    })*/

//HERE/////////////////////////////////////////

    $('#recherches-stockees > p').on('click', function() {
        console.log($(this).text());
    });

}


//function callback => si jamais la requete ajax get reussis alors on fait celle ci
//view
function maj_resultats(res) {
    $("#wait").css("display","none");

    //res est un objet de plusieurs offres, on veut toute les afficher dans la case resultat
    $(res).each(function(index,value){
        $("#resultats").append('<p class="titre_result"><a class="titre_news" href='+decodeHtmlEntities(value.url)+
        ' target="_blank">'+decodeHtmlEntities(value.titre)+
        '</a><span class="date_news">'+decodeHtmlEntities(value.date)+'</span><span class="action_news" onclick="sauver_nouvelle(this)"><img src="img/horloge15.jpg"/></span></p>'); 
    });


}

//manque : creer un objet à envoyer 
//delete dans recherche_courante_news   

function sauver_nouvelle(elt) {
    //parentElement => titre
    let obj = {
        "titre" : $(elt).parent().find("a").text(),
        "date" : $(elt).parent().find(".date_news").text(),
        "url" : $(elt).parent().find("a").attr('href')
    }
    //$(elt).firstChild.attr("src","");
    //$(elt).attr("src","img/disk15.jpg");
    $(elt).html("<img src = img/disk15.jpg />");
    $(elt).attr("onclick","supprimer_nouvelle(this)");
    //creer l'objet il faut
    if(indexOfResultat(recherche_courante_news,obj) == -1){
        recherche_courante_news.push(obj);
        localStorage.setItem("recherches_courante_news",JSON.stringify(recherche_courante_news));
    //on a donc 1 cookie par recherche, faire des verif pour pas pouvoir mettre le même plusieurs fois ??
        localStorage.setItem( $("#zone_saisie").val(),JSON.stringify(recherche_courante_news));
    }
}


function supprimer_nouvelle(elt) {
    let obj = {
        "titre" : $(elt).parent().find("a").text(),
        "date" : $(elt).parent().find(".date_news").text(),
        "url" : $(elt).parent().find("a").attr('href')
    }
    //$(elt).attr("src","");
    //$(elt).attr("src","img/horloge15.jpg");
    $(elt).html("<img src = img/horloge15.jpg />");
    $(elt).attr("onclick","sauver_nouvelle(this)");
    if(indexOfResultat(recherche_courante_news,obj) != -1){
        recherche_courante_news.splice(indexOfResultat(obj,recherche_courante_news));
        localStorage.setItem("recherches_courante_news",JSON.stringify(recherche_courante_news));
        localStorage.setItem($("#zone_saisie").val(),JSON.stringify(recherche_courante_news));

    }
}



//Autocompletion
//A chaque Entrée de clavier => keyup, verifier si le mot n'a pas une ressemblance dans le localstorage (recherches sauvegardées)
//Apparement Jquery UI le fait tres bien

//Model et view
var test = ['Grenoble','Lyon','Paris'];
$("#zone_saisie").autocomplete({
    source : recherches,
    focus : true
}).keypress(function(event){
    if(event.keyCode === 13){
        rechercher_nouvelles();
    }
});

$("#saved_research").click(function(event){
  var x = event.target; // event.target has the exact element clicked
  console.log($(x).text()); // the text of the clicked element
});
<div id="saved_research">
   <p data-paragraph="1">Paris</p>
   <p data-paragraph="2">London</p>
   <p data-paragraph="3">New York</p>
</div>

$("#saved_research").click(function() {
    console.log($("[data-paragraph='1']").text());
});
$(window.document).on('click', "#saved_research", function() {
    console.log($("[data-paragraph='1']").text());
});