jq问题

nyyswd1978 2015-07-08 03:09:29
有2个问题。
1。jq如何筛选or的条件
比如 我要筛选2类span。一类name为1一类name为2。我现在只能分开写2句
.find("span[name='1']")
.find("span[name='2']")
然后分别对2种筛选做一些代码。感觉太笨。jq可以同时一起筛选or的情况么?
我用.find("span[name='1'][name='2']")貌似无效。是不是这种写法只能用于and情况。而不能用于or的情况?

2。一个表,每行都有一个span 存在于td中。<span name=‘1’ onclick='tets(id参数,参数,...)'><img />文字</span>
我现在想要临时让这个span失效。也就是点击这个span(包含图片和文字)不执行test()。然后某种条件下再恢复。
我用代码:.find("span[name='1']").attr("disabled",true)后,点击文字确实不执行test()了。但是点击图片还是会执行test()
用了:.find("span[name='1']").find("img").attr("disabled","disabled")也不行。图片好像并没有被disabled
如何才能完全禁止span中的图片也被disabled?
不要和我说用removeAttr(“onclick”)。因为我每个span的test()都绑定了不同的id参数。如果用removeAttr虽然可以去掉事件。但是恢复的时候我不可能再重新加载每个id。
...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
forwardNow 2015-07-08
  • 打赏
  • 举报
回复
把 事件处理函数 临时保存到span元素对象里即可。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <span id="demo" onclick="test('001','a')"><!-- 
    --><img src="http://www.iconpng.com/png/glossy-button/20.png"></span>
    
    <input type="button" value="禁止" onclick="disableClickHandler(demo)">
    <input type="button" value="激活" onclick="activeClickHandler(demo)">

    <script>
        
        var demo = document.getElementById( "demo" );

        function test(arg1, arg2) {
            if ( console && console.info ) {
                console.info( arg1, arg2 );
            } else {
                alert(arg1 + " " + arg2);
            }
        }

        function disableClickHandler( elt ) {
            elt.originalClickHandler = elt.onclick;
            elt.onclick = null;
        }
        function activeClickHandler ( elt ) {
            if ( elt.originalClickHandler ) {
                elt.onclick = elt.originalClickHandler;
                delete elt.originalClickHandler;
            }
        }

        /*
            disableClickHandler(demo)
            activeClickHandler(demo)
        */
    </script>
</body>
</html>
香蕉猪 2015-07-08
  • 打赏
  • 举报
回复
楼主的onclick为啥要写在span中,,,写在〈td〉里不就解决了。。。
Braska 2015-07-08
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.8.3/jquery.min.js"></script>
<style>
</style>
<script>
	$(function(){
		$('span[name="1"],span[name="2"]', 'table tr td').each(function(){
			alert($(this).html())
		});
		
		$('span[name=1]').attr('onclick', '');
	});
	function test(obj){
		alert($(obj).attr('params'))
	}
</script>
<body>
<table><tr><td>
<span name='1'>1</span>
<span name='2' params="params1, params2" onclick="test(this)">2</span>
</td></tr><tr><td>
<span name='1' params="params3, params4" onclick='test(this)'><img src="imges/404.png"/>文字</span>
</td></tr>
</table>
</body>
</html>
参数可以用自定义的属性存,我思路就这样子了
slwsss 2015-07-08
  • 打赏
  • 举报
回复
.find("span[name=2],span[name=1]") 用逗号 在test里加判断

87,955

社区成员

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

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