首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >closest()未按预期工作

closest()未按预期工作
EN

Stack Overflow用户
提问于 2013-01-22 20:23:23
回答 2查看 86关注 0票数 0
代码语言:javascript
复制
$("#main .primary")
        .width($(this).closest("#main .row")
        .outerWidth(true) - $(this).closest("#main .secondary")
        .outerWidth(true));

..完全不起作用。

我所做的是通过从main ( primary )中减去secondary的宽度来将宽度应用于父分区。

代码语言:javascript
复制
<div id="main">
    <div class="row">
        <div class="primary"></div>
        <div class="secondary"></div>
    </div>
</div>

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-22 20:32:25

首先,选择器#main .row将返回一个空的jQuery对象,如果你想匹配具有id和类的元素,你可以这样使用它:

代码语言:javascript
复制
#myId.my-class // Select by id and class
div#myId.my-class // Select by element and the id and the class

我建议您在本例中使用siblings()方法

代码语言:javascript
复制
$('#main .primary')
  .width( function(){ 
   return $(this).closest('.row').width() - // or you can use .parent() instead
          $(this).siblings('.secondary').outerWidth(true); 
})
票数 4
EN

Stack Overflow用户

发布于 2013-01-22 20:40:17

希望下面的解决方案能对你有所帮助。

没有测试,因为没有时间。

代码语言:javascript
复制
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

$(document).ready(function()
{

    var main      = $("#main");
    var primary   = main.find('.row > .primary');
    var secondary = main.find('.row > .secondary');
    var newWidth  = main.width() - secondary.width() ;

    console.log(newWidth);
    primary.css('width',newWidth);
});

</script>

<div id="main" style="border:5px solid red;padding:10px;width:600px;">
    <div class="row" style="border:5px solid red;padding:10px;width:500px;">
        <div class="primary" style="border:2px solid #CCC;width:200px;padding:10px;"></div>
        <div class="secondary" style="border:5px solid #669900;width:200px;padding:10px;"></div>
    </div>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14458479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档