如何检查div中的span是否包含某些文本?

时间:2017-02-13 13:59:11

标签: javascript jquery

请参阅my jsFiddle,我从下拉列表中创建一个span列表,然后填充输入字段。

我想不允许用户一遍又一遍地插入相同的值(因此,如果你输入了#34; Galileo Galilei",如果你不能再插入它如果之前没有删除。)

我正在尝试这样的事情(就在" var creaIdRimuovi"之后):

var contenutoAttuale = $("#contenitorePersone").text();
if (contenutoAttuale.indexOf(personaSelezionataId) > 0){
    alert("presente"); //just to check if the string is founded
}

if ("contenutoAttuale:contains('"+personaSelezionataId+"')"){
    alert("presente");
}

并且这两种解决方案都不起作用(或者使用else条件)。

我该怎么做?我读到方法contains()现已弃用,我在我的项目中使用了1.11。

2 个答案:

答案 0 :(得分:2)

你的第二个代码示例是沿着右边的行,但是需要将选择器提供给jQuery对象,然后还需要检查该对象的{ path: 'r1', component: 'appComponent', children: [ { path: '', component: contentr12Component, outlet: 'content1_r1_r2' }, { path: '', component: contentr1Component, outlet: 'content2' } ] } // write same for r2 just change content1Component you want to load on /r2 route. { path: 'r3', component: 'appComponent', children: [ { path: '', component: contentr34Component, outlet: 'content1_r2_r4' }, { path: '', component: contentr3Component, outlet: 'content2' } ] } // write same for r4 just change content3Component you want to load on /r4 route. 属性。试试这个:

length

Updated fiddle

if ($('#contenitorePersone').find('span:contains("' + personaSelezionata + '")').length != 0) { alert('presente'); return; } 语句退出事件处理程序函数,因此会阻止新的return作为已存在的div附加。

答案 1 :(得分:1)

此处的逻辑是将输入的值与已添加到下面列表中的值相匹配。所以你走了:

if(!($('#contenitorePersone').find('span:contains("'+personaSelezionata+'")').length)){

    $('#contenitorePersone').append('<div><span id="span' + personaSelezionataId + '">' + personaSelezionata + '</span> <input type="button" value="-" id=' + creaIdRimuovi + ' class="ui-button ui-corner-all ui-widget removeSpan"><br></div>');
    var inputList = $('#personeID').val();
    if ($('#personeID').val() != "") {
      $('#personeID').val(inputList + ", " + personaSelezionataId);
    } else $('#personeID').val(personaSelezionataId);
 }

链接:https://jsfiddle.net/Ashokkumargupta/8vr9e30a/24/

干杯,

阿肖克