Javascript在鼠标事件中获取跨度内容

时间:2013-02-05 17:08:55

标签: javascript jquery innerhtml html

我有以下标记,我正在应用成功的Javascript以生成工具提示,问题是我正在尝试将工具提示的内容设置为跨度的内容。

如果没有500种不同的document.get等等,我无法想出办法。

基本上我想知道:showTooltip函数中,如何动态获取范围的内容?

标记:

<ul class="exec-List">
                    <li>
                        <img src="file:///C|/Users/tsujp/Documents/Everything/Adobe Projects/DW/KCC/Website/V8/src/committee/mirae.png" /> 

                        <span class="tooltip-span">Conten2t</span>

                    </li>
                    <li>
                        <img src="file:///C|/Users/tsujp/Documents/Everything/Adobe Projects/DW/KCC/Website/V8/src/committee/mirae.png" /> 

                        <span class="tooltip-span">Content55</span>

                    </li>
                </ul>

使用Javascript:

$(document).ready(function() {

var changeTooltipPosition = function(event)
{
  var tooltipX = event.pageX - 8;
  var tooltipY = event.pageY + 8;
  $('div.tooltip').css({top: tooltipY, left: tooltipX});
};

function showTooltip(event/*, index, el*/)
{
    /*alert( $(this).parent(this).get(0).tagName );*/

    $('div.tooltip').remove();
    $('<div class="tooltip">/* + tooltip_text +*/ </div>')
        .appendTo('body');
    changeTooltipPosition(event);
};

var hideTooltip = function()
{
   $('div.tooltip').remove();
};

$('span').each(function()
{
    if( $(this).hasClass( 'tooltip-span' ) )
    {                       
        //tooltip_text = $(el).html();

        $(this).parent(this).bind(
        {           
            mousemove : changeTooltipPosition,
            mouseenter : showTooltip/*( HOW DO I PASS 'EVENT' HERE)*/,
            mouseleave: hideTooltip
        });
    }
});

});

1 个答案:

答案 0 :(得分:1)

您可以选择$('.tooltip-span', this)并选择text()

function showTooltip(event/*, index, el*/)
{
    var text = $('.tooltip-span', this).text();
    /*alert( $(this).parent(this).get(0).tagName );*/

    $('div.tooltip').remove();
    $('<div class="tooltip">' + text + '</div>')
        .appendTo('body');
    changeTooltipPosition(event);
};

JSFiddle