如何用jquery查找指定字符当前索引值?

liu_dashi 2013-03-28 04:03:13
我要实现这样的需求,比如有一个内容模版,模版中有{0}{1}.....{n}字符元素需要参数替换。而这些{X}元素是我在页面中,点击<a>链接加到内容中的。我想知道,怎么通过jquery来查找当前内容中{x}有多少个,因为只有这样我才能知道 我要加进去的{X}元素的序号
...全文
349 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
OneDayOf2010 2013-04-01
  • 打赏
  • 举报
回复
为什么不直接$("a").length ,这样不就直接拿到了,一句话的事情
tianma630 2013-04-01
  • 打赏
  • 举报
回复
这种字符串匹配问题都用正则
ftiger 2013-04-01
  • 打赏
  • 举报
回复
要求不明,大约如此

 var html="{0},你好!今天是{1},有一个任务{2}待处理,{3}......,如何找出这段html中有多少个{3}元素";

 var templetFind= function (str) {
	var reg=/({\d+})/g, cache={},result;
	while((result = reg.exec(str)) != null ) {
		var key= result[0];
		if(cache[key]){
			cache[key].time++;
		}else{
			cache[key]={time:1};
		}
	}
	var ss="";
	for(var key in cache){
		ss+= key+" 共"+ cache[key].time +"\n";
	}
	alert(ss);
 }
 templetFind(html);
liu_dashi 2013-04-01
  • 打赏
  • 举报
回复
引用 6 楼 xzy21com 的回复:
JavaScript code?12345678910<script type="text/javascript">var html="{0},你好!今天是{1},有一个任务{2}待处理......,如何找出这段html中有多少个{3}元素";var reg=/({\d+})/g;var obj=html.match(reg); if(obj==null){ ……
如果有重复的{x},如何判断?也即如果重复则只记录一个{x}元素
scscms太阳光 2013-04-01
  • 打赏
  • 举报
回复
<script type="text/javascript">
var html="{0},你好!今天是{1},有一个任务{2}待处理......,如何找出这段html中有多少个{3}元素";
var reg=/({\d+})/g;
var obj=html.match(reg);
    if(obj==null){
        alert("0个{X}元素");
    }else{
        alert(obj.length+"个{X}元素");
    }
</script>
liu_dashi 2013-04-01
  • 打赏
  • 举报
回复
引用 4 楼 zzgzzg00 的回复:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-……
比方说有这么一段html:{0},你好!今天是{1},有一个任务{2}待处理......,如何找出这段html中有多少个{X}元素?
liu_dashi 2013-04-01
  • 打赏
  • 举报
回复
呵呵 是我自己写的问题 没问题了 已经解决
ftiger 2013-04-01
  • 打赏
  • 举报
回复
{中文} 在firefox,chrome,IE6下都没有问题啊。
functionsub 2013-04-01
  • 打赏
  • 举报
回复
引用 13 楼 liu_dashi 的回复:
嗯!非常感谢你 不太明白这个正则表达式,我的{中文}括弧中是中文,好像不行!不知道这个正则要怎么改? 引用 12 楼 ftiger 的回复:这个是纯js,用不上jquery JavaScript code?1234567891011121314151617181920212223var html="{a},你好!今天是{b},有一个任务{c}待处理,{a}..……

var reg=/\{[^\x00-\xff] \}/ig,
把楼上上的正则换成这个试试
liu_dashi 2013-04-01
  • 打赏
  • 举报
回复
嗯!非常感谢你 不太明白这个正则表达式,我的{中文}括弧中是中文,好像不行!不知道这个正则要怎么改?
引用 12 楼 ftiger 的回复:
这个是纯js,用不上jquery JavaScript code?1234567891011121314151617181920212223var html="{a},你好!今天是{b},有一个任务{c}待处理,{a}......,如何找出这段html中有多少个{d}元素"; var templetFind= function (str) { var re……
ftiger 2013-04-01
  • 打赏
  • 举报
回复
这个是纯js,用不上jquery

var html="{a},你好!今天是{b},有一个任务{c}待处理,{a}......,如何找出这段html中有多少个{d}元素";
 
 var templetFind= function (str) {
    var reg=/({\d+})/ig, cache={},result,index=0;

	str =str.replace(/\{[^\}]+\}/ig,function (key) {
		if(cache[key]){
            cache[key].time++;
			return "{"+ cache[key].index+"}";
        }else{
            cache[key]={time:1,index:index};
			index++;
			return "{"+ cache[key].index+"}";
        }
	});
    var ss="";
    for(var key in cache){
        ss+= key+" 共"+ cache[key].time +"\n";
    }
    alert(ss);
    alert(str);
 }
 templetFind(html);
liu_dashi 2013-04-01
  • 打赏
  • 举报
回复
引用 8 楼 ftiger 的回复:
要求不明,大约如此 JavaScript code?12345678910111213141516171819 var html="{0},你好!今天是{1},有一个任务{2}待处理,{3}......,如何找出这段html中有多少个{3}元素"; var templetFind= function (str) { var reg=/({\d+})/g, c……
非常感谢!这样是可以找出重复的个数,可是如何记录索引呢?比如:var html="{a},你好!今天是{b},有一个任务{c}待处理,{a}请提交......";通过你的脚本可以找到[a]2个\[b]1个\[c]1个;。我最终想得到的是var html="{0},你好!今天是{1},有一个任务{2}待处理,{0}请提交......";其中碰到两个问题 1、索引问题。重复的元素用同一个索引值。2、jquery中如何实现像.net 中string.replace()这样的功能?
liu_dashi 2013-03-29
  • 打赏
  • 举报
回复
引用 1 楼 zzgzzg00 的回复:
定义个变量记录一下 每点击一次a连接这个数字加1试试 或者新加的元素有没有什么规律 比如都是p或者其他标签 这样可以获取这样的最后一个这样的标签后获取对应的值试试
那如果在编辑这个内容时,如何通过jquery查找出当前内容中有多少个“{X}”字符么?
似梦飞花 2013-03-29
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script type="text/javascript"> var x=0; function add(){ var div=document.createElement("div"); div.contentEditable=true; div.innerHTML=x; document.body.appendChild(div); x++; } function showNum(){ alert(x-1); } </script> </head> <body> <input type="button" value="add" onclick="add()"> <input type="button" value="shownum" onclick="showNum()"> </body> </html> 不是很明白你的意思
liu_dashi 2013-03-29
  • 打赏
  • 举报
回复
有处理过类似问题的吗?自己顶一下
似梦飞花 2013-03-28
  • 打赏
  • 举报
回复
定义个变量记录一下 每点击一次a连接这个数字加1试试 或者新加的元素有没有什么规律 比如都是p或者其他标签 这样可以获取这样的最后一个这样的标签后获取对应的值试试

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧