从div动态选择文本并使用mouseenter&鼠标离开

时间:2012-06-06 19:16:06

标签: jquery html

我觉得我的逻辑是有道理的;不幸的是,它没有:(?
更新:livecode问题:
我如何在mouseenter上抓取$(this).attr.('title')并将该文字设置为('HGROUP h1')的文字?

jQuery

$("div.box").on('mouseenter', function () { //select the box create mouseenter function
    var headerText = $(this).attr('title'); //get selected title and set to headerText
    $('HGROUP h1').text(headerText); //set hgroupd h1 text to headerText
});

$("div.box").on('mouseleave', function () { //select the box create mouseleave function
    $('HGROUP h1').text('DESIGNOBVIO.US'); //set the orginal text back in place on mouseleave
});

HTML

<div class="box">
<h1 title="can i haz it?2"></h1>
<div class="innerbox">
    <figure></figure>
    <ul class="categorySelect">
        <li class="misc"></li>
        <li class="print"></li>
        <li class="video"></li>
        <li class="web"></li>
    </ul>
</div>

Hgroup HTML

<HGROUP>
 <h1>designobvio.us</h1>
 <h2>the colors duke, the colors!7</h2>
</HGROUP>

对我出错的地方的任何进一步解释都很棒。

3 个答案:

答案 0 :(得分:1)

看起来你需要使用:

var headerText = $(this).find('h1:first').attr('title');

答案 1 :(得分:1)

改变这个:

var headerText = $(this).attr('title');

要:

var headerText = $(this).find('h1').attr('title');

您的代码正在尝试获取div的标题,而不是<h1>子项。

答案 2 :(得分:0)

您应该使用find获取标题。

var headerText = $(this).find('h1').attr('title');

试试这个:

  $("div.box").on('mouseenter', function () { 
 //select the box create mouseenter function
  var headerText = $(this).find('h1').attr('title'); 
  //get selected title and set to headerText
   console.log(headerText);
    $('HGROUP h1').text(headerText); //set hgroupd h1 text to headerText
 });

 $("div.box").on('mouseleave', function () { 
       //select the box create mouseleave function
     $('HGROUP h1').text('DESIGNOBVIO.US'); 
     //set the orginal text back in place on mouseleave
 });​

这是demo