繁体   English   中英

如何在jQuery中使用li的id从字符串中删除特定的子字符串

[英]how to remove particular substring from string using id of li in jquery

我有绳子

0 => zxz ## 5 => zxzx ## 5 => zxz ## 10 => zxz ## 1 => asdasd ## 12 => asdsad ## 10 => asdsad

其中0,5,10是ID,文本是值,而##是定界符。

我有身份证,我想删除身份证的价值

这是我的以下代码,请检查并提出建议。

代码1

function remove_feature(id)
{
    var feature_str  = $("#features_post").val();
    var feature_string = feature_str.replace(['id=feature_str'],'', 'gi');  
    window.jQuery("#features_post").val(feature_string); 
    window.jQuery("#"+id+"").remove();
      alert(feature_string);
    return true;
}

码2

 function remove_feature(id)
{
    var feature_str  = $("#features_post").val();
    var feature_string = feature_str.replace(id,'', 'gi');  
    window.jQuery("#features_post").val(feature_string); 
     window.jQuery("#"+id+"").remove();
    alert(feature_string);
        return true;
    }

我已经尝试了两种代码,但无法正常工作

误解了问题,对不起。

要替换该字符串中的每个键=>值对,可以使用正则表达式:

var string = "0=>zxz##5=>zxzx##5=>zxz##10=>zxz##1=>asdasd##12=>asdsad##10=>asdsad";

function remove_feature(id) {
  var x = new RegExp("" + id + "\=>[a-z0-9]+(##)?", "gi")

  return string.replace(x, "");
}

因此, remove_feature(5)打印"0=>zxz######10=>zxz##1=>asdasd##12=>asdsad##10=>asdsad"


如果id参数是提供的字符串中存在的键,并且应该返回相应的名称,则可以使用JSON.parse函数,假装解析url。 因此,可以用& s代替定界符,用= s =>代替定界符:

var string = "foo=>bar##john=>doe";

function remove_feature(id) {
  // id should be something left hand side the =>, like 0 or 1
  var _string = string.replace('##', '&').replace('=>', '='),
    obj = JSON.parse('{"' + decodeURI(_string).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g,'":"') + '"}'),
    _id = obj["" + id];

  $('#' + _id).remove();
}

用法: remove_feature("foo")将删除ID为#bar的元素。

用jquery尝试一下: http : //jsfiddle.net/h0qtxn7d/也可以删除相同的多个ID。

 var k = "0=>zxz##5=>zxzx##5=>zxz##10=>zxz##1=>asdasd##12=>asdsad##10=>asdsad"; var obj = k.split("##"); var removeItem = 5; alert('Array before removing the element = ' + obj) obj = jQuery.grep(obj, function(value) { return value.split('=>')[0] != removeItem; }); alert('Array after removing the element = ' + obj); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM