请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

获取​shopCategoryId

shopCategoryId:$('#shop-category').find('option').not(function(){
return !this.selected;

}).data('id')

老师,对于这个是否还有其他的写法,这样获取有点不是太理解,有没有其他比较常规的js写法
是不是在企业中这样写的比较多点?

正在回答

2回答

翔仔 2019-12-19 01:40:52

同学好,这个获取理解起来也比较简单呢,双重否定等于肯定,就是获取到选项里不是没有被选择的选项(即被选择的选项),企业里也是这样的写法呢。

也可以用类似 

.find("option:selected").attr("id")

这样子的写法取获取

1 回复 有任何疑惑可以回复我~
  • 提问者 Suame飞飞 #1
    谢谢
    回复 有任何疑惑可以回复我~ 2019-12-19 12:49:03
  • 提问者 Suame飞飞 #2
    shop.area = {
    				areaId:$('#shop-area').find('option:selected').attr('id')
    		};
    我这样写执行不了  控制台显示的这个
    zepto.min.js:2 Uncaught DOMException: Failed to execute 'querySelectorAll' on 'Element': 'option:selected' is not a valid selector.
        at Object.T.qsa (http://g.alicdn.com/sj/lib/zepto/zepto.min.js:2:4448)
        at Array.find (http://g.alicdn.com/sj/lib/zepto/zepto.min.js:2:7055)
        at HTMLAnchorElement.<anonymous> (http://localhost:8080/o2o/resources/js/shop/shopoperation.js:70:28)
        at HTMLAnchorElement.s.proxy (http://g.alicdn.com/sj/lib/zepto/zepto.min.js:2:15017)
    T.qsa @ zepto.min.js:2
    find @ zepto.min.js:2
    (anonymous) @ shopoperation.js:70
    s.proxy @ zepto.min.js:2
    回复 有任何疑惑可以回复我~ 2019-12-19 14:11:39
  • 翔仔 回复 提问者 Suame飞飞 #3
    应该是没找到元素,可以参考这个进行查询
    https://www.cnblogs.com/interesting-whh/articles/9603545.html
    回复 有任何疑惑可以回复我~ 2019-12-20 03:03:37
纯情的慕哥 2019-12-18 16:22:58

呃,如果是主后端,这个不需要过多研究,其实这样的写法的好处就是让可读性更好一些。获取id=shop-category这个dom节点,找(find)他低下的'option'标签对象,not通过一个函数进行一个过滤(类似java里面比较器函数),return true的是过滤掉的(not),最后剩下一个option标签对象,取它的id。

如果是js原生,我知道的有filter方法,感兴趣可以看看这个https://www.runoob.com/jsref/jsref-filter.html

如果帮到你,望采纳

2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号