我可以在jquery中使用#id或.class和$(this)

时间:2013-06-23 18:08:03

标签: jquery

我可以在jquery中使用这样的吗?     $(this+"#id").html(...);或其他任何方法 我有这样的情况可以像这样使用。我的代码在下面给出

html代码

<div id="box1">
<div ></div>
</div>    

css代码是

#box1  {  
width:300px;
height:200px;
border:1px solid #333;
}  
#box1 div
{
width:200px;
height:150px;
border:1px solid #999;
margin:auto;
margin-top:10px;

}

Jquery代码是

$(document).ready(function()
              {
                  $("#box1").mouseenter(function()
         {

         $(this+"div").html("<p>Mouse entered</p>");

        });    });

请参阅jsfiddle

中的代码

4 个答案:

答案 0 :(得分:4)

$(document).ready(function() {
    $("#box1").mouseenter(function() {
         // $(this) references the #box1 element, and turns it into a jquery object
         // .find searches inside this DOM node for the new selector
         $(this).find("div").html("<p>Mouse entered</p>");
    });    
});

.find method - 在DOM元素内搜索新的选择器。将匹配作为jQuery对象返回。

我重新格式化了您的代码,以使用我们在工作中使用的约定。请注意,打开的curlies在同一行上,然后匹配的close将缩减到其开放级别。有很多“最佳实践”,所以试着找到一个并坚持下去。它将使阅读,理解和调试代码变得更加容易。

答案 1 :(得分:3)

你可以add context in your query这样:

$('selector', context)

所以你的使用:

$('div', this)

您也可以像find method那样使用:

$(this).find('div');

答案 2 :(得分:1)

试试这个:

$(document).ready(function()
{
    $("#box1").mouseenter(function()
    {
      $("div", this).html("<p>Mouse entered</p>");
    });    
});

这是jsFiddle

答案 3 :(得分:1)

尝试使用

 $(this).find("div").html("<p>Mouse entered</p>");