在一个名为“root”的div类包装(.wrap)后找到一个div的类

时间:2016-09-07 07:52:41

标签: javascript jquery html css

我想在它周围用div(类“parent”)包装div(类“root”)。成功包装,但在环绕类“root”后尝试找到带有“.hasClass”函数的“父”类时,它返回'false'。查看此示例代码。据我说,它必须是“真实的”。问题出在哪里?

$(document).ready(function(){
$(".root").wrap("<div class='parent'></div>");
  alert($(document).hasClass("parent"));
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="root">123</div>

3 个答案:

答案 0 :(得分:2)

检查每个线路描述的脚本

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if ("android.intent.action.VIEW".equals(getIntent().getAction())) {
        // This Activity is started using an external app (eg: Gmail)
        // So start the app from the beginning 
        // (redirecting to Activity A)
        Intent mainIntent = getIntent(); // Copy the Intent used to launch me
        // Launch the real root Activity (launch Intent)
        mainIntent.setClass(this, StartActivity.class);

        // Post an event to kill all existing activities 
        // To do this i use Guava
        PubSub.getInstance().post(new KillActivityEvent());
        startActivity(mainIntent);
        finish();

    } else {
        //  The activity wasn't started by an external app
        finish();
    }
}
$(document).ready(function(){
  $(".root").wrap("<div class='parent'></div>");
  //alert($(document).hasClass("parent"));

  alert($(".parent").html()); //<-- Change the selector target
  alert($(".parent").length ? true : false); // get the existances
});

答案 1 :(得分:0)

$(document).hasClass("parent")会检查parent元素上是否存在document类。它没有名为parent的类,因此返回false。

您应该检查jQuery对象的长度,例如$('.parent').length

$(document).ready(function() {
  $(".root").wrap("<div class='parent'></div>");
  alert($('.parent').length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="root">123</div>

答案 2 :(得分:0)

查看生成的HTML:

在:

<body>
    <div class='root'>123</div>
</body>

代码:

$(".root").wrap("<div class='parent'></div>")

结果:

<body>
    <div class='parent'>
        <div class='root'>123</div>
    </div>
</body>

现在,应该很清楚调用$("body").hasClass(".parent")将是假的,这是因为.hasClass检查如果元素本身具有该类,而不是它下面的任何元素具有类< / strong> - 在上面的示例中,“body”不是<body class='parent'>,因此$("body").hasClass(".parent")为false。

同样适用于“文件”,其中文件在“正文”之上 - .parent已添加到文件/正文中,而不是文件/正文。

  

如何找到.parent存在?

您可以使用返回数组的.find,以便与.length>0进行比较,例如

if ($(document).find(".parent").length > 0)

或简单地说:

if ($(".parent").length > 0)