论坛首页 Web前端技术论坛

用jQuery来查找Option的text

浏览 4863 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-24  
问题起引:页面中显示Table,它里面显示的是各分公司的统计数据,同时每行还一个链接,通过这个链接可以查看指定分公司数据详情。由于后台没设计好,在实现此链接功能时,碰到了传中文的问题,即把具体分公司名称传到后台。当然网上有不少解决中文传参的方法,但不是那么方便,要配置不少地方。

问题解决思路: 观察下四周,当前页面恰好有一个下拉选择列表,它里面正好有分公司及其对应的ID。于是,就想在点时链接,通过JS把中文字换成数字的ID,这样后台就再通过ID拿到分公司名称。

代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

<select id="branchName">
    <option value="10">北京分公司</option>
    <option value="11">天津分公司</option>
    <option value="12">河北分公司</option>
    <option value="13">山西分公司</option>
</select>

<script src="http://code.jquery.com/jquery-latest.min.js"></script>

<script>
	function getSubComId_OK(subName){
		alert("getSubComId_OK ID: " + $("option:contains('"+subName+"')").val());
	}

	function getSubComId_failed_once(subName){
		alert("getSubComId_failed_once ID: " + $("#branchName option[text='"+subName + "']").val());

		alert("getSubComId_failed_once ID: " + $("#branchName option[text="+subName + "]").val());
	}

	getSubComId_OK('山西分公司');
	getSubComId_failed_once('山西分公司');
</script>
 
问题:
当然这个解决方案是一个权益之计,较好解决方式是全局的调整。虽然给以后的维护挖了个坑,不过方案,还是行的通的。
   发表时间:2010-06-25  
这个 我好像看过一个jquery的组件。。可以实现这个!现在不记得了
0 请登录后投票
   发表时间:2010-06-28  
保证后台代码和数据库的编码格式跟前台页面一致
用escape 编码中文字符不就可以了。。。。

其实不是很明白lz说的问题。。。
1 请登录后投票
   发表时间:2010-06-29  
哎,这个。。。
LZ不就是想避免传中文吗?
想通过传给 fuction 的是中文,然后查找页面中其中 select 了的值进行匹配
把匹配的 option value 替换原来的中文然后传给后台
是不?
很简单吧?用 jQuery 自己写都行
懒一点就网上找个插件
记得有个 叫 jquery.select 的
0 请登录后投票
   发表时间:2010-10-09  

<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<script src="http://code.jquery.com/jquery-latest.min.js"></script>


<select id="branchName" >
    <option value="10">北京分公司</option>
    <option value="11">天津分公司</option>
    <option value="12">河北分公司</option>
    <option value="13">山西分公司</option>
</select>

<input id = "buttonId" type="button" value = "Show" onclick = "alertText()" />

<script>	
	function alertText(){		
    var str = $("select#branchName option:selected").text();          
    alert("选中的分公司名称是:" + str);
	}
	
</script>



关于“:selected”的选择。
0 请登录后投票
   发表时间:2010-10-10   最后修改:2010-10-10
我也来一个,
<script src="jquery-1.4.2.js"></script>
<select id="branchName" >
    <option value="10" textValue="北京分公司">北京分公司</option>
    <option value="11" textValue="天津分公司">天津分公司</option>
    <option value="12" textValue="河北分公司">河北分公司</option>
    <option value="13" textValue="山西分公司">山西分公司</option>
</select>
<script>	
$(function(){
	$("#branchName").change(function(){
		 alert($("#branchName option[selected]").text()+" "+$(this).val());
	});
});
</script>
0 请登录后投票
   发表时间:2010-12-24  
关于
$("#branchName option[text='"+subName + "']")

这个选择器好像在Google chrome浏览器中总是找不到,不知道我的代码是不是有什么特殊的地方,想请大家测试一下在Google chrome里这种选择器的方法是否能正常使用,如果不行,那有没有什么解决的办法呢?
上网找了很久,但是都没有结果,好像唯一的一个是要遍历全部的option,进行比较,这样好像不是很好吧.
var count = target.length;
	for(var i=0;i<count;i++){
		if($("#xx_select option:eq("+i+")").text() == city){
	    	$("#xx_select option:eq("+i+")").attr("selected",true);
	   		break; 
	    } 
	}

如果大家有什么好的办法也希望能够赐教一下,谢谢.
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics