【问题标题】:jQuery making adiv tag with muiltiple parameters how to use Quotes insidejQuery制作带有多个参数的div标签如何在里面使用引号
【发布时间】:2014-02-04 12:18:21
【问题描述】:

如果我的 "" 里面有单引号,它会显示 F3-R06,但是移动和鼠标移出不起作用。 如果我把它从 jQuery 中拿出来,它工作得很好,但是我如何使用它里面的引号什么都不做。 在“”中我需要什么样的引用? 我试过 "" 和这个 """ 但没有任何效果

<script type="text/javascript">
$(function drawdiv()
    {
        $("<div onmouseover="mOver(this,'Fred Flintstone')"  onmouseout="mOut(this,'F3-R06')" style='background-color:#D94A38;width:30px;height:30px;padding:20px'>F3-R06</div>").appendTo("body"); 
    })
</script>
<script>

function mOver(obj,name)
    {
        obj.innerHTML=name
    }

function mOut(obj,room)
    {
        obj.innerHTML=room
    }
</script>

【问题讨论】:

    标签: jquery html quotes


    【解决方案1】:

    那里的引号有两个不同的问题。一个是 jQuery 选择器引号,另一个是 div 的 js 属性中的引号。

    首先,按照惯例,考虑在 jQuery 选择器中使用单引号,以便您可以根据需要对 HTML 属性等使用双引号。

    $('<div id="this-is-fine"></div>').blah();
    

    其次,当你在选择器中有两个以上的引号类型时,你可以用反斜杠(\)转义它们。

    $('<div onmouseover="mOver(this,\'Fred Flintstone\')"  onmouseout="mOut(this,\'F3-R06\')" style="background-color:#D94A38;width:30px;height:30px;padding:20px">F3-R06</div>').appendTo('body');
    

    第三,也许考虑多喝一点 jQuery Kool-Aid。

    jQuery('<div>F3-R06</div>')
        .attr('onmouseover', 'mOver(this, "Fred")')
        .attr('onmouseout', 'mOver(this, "F3-R06")')
        .css({ 
            'background-color' : '#D94A38', 
            'width' : '30px',
            'height' : '30px',
            'padding' : '20px'
            })
        .appendTo('body');
    

    稍微多一点的 kool-aid 可以帮助您:

    $('<div data-alt-text="Fred">F3-R06</div>')
        .hover(function (){ //first is mouseenter
            altText($(this));
        },
        function () { // second is mouseleave
            altText($(this)); 
        })
        .addClass('f3-box') // css is handy.
        .appendTo('body');
    
    function altText ($obj){
        var text = $obj.text();
        // wang dang and reverse it - ms elliot
        $obj.text( $obj.attr('data-alt-text') );
        $obj.attr('data-alt-text', text )
    }    
    
    <style>
        .f3-box{
            background-color: #D94A38, 
            width: 30px,
            height: 30px,
            padding: 20px
        }
    </style>
    

    更多关于.hover() in the jquery docs

    【讨论】:

    • 谢谢你 Will,我试过“第二,当你必须在选择器中有两个以上的引用类型时”,效果很好,谢谢。我很快就会看看其他的“kool-aid”项目。而且由于我只有 13 分,我还不能“投赞成票”,需要 15 分才能做到这一点,但我给了一个绿色检查:)
    • 这里的目标也是让数据库驱动“Fred Flintsone”和房间#“F3-R06”。我将如何合并它。或者因为这是 jQuery 并且您不应该连接到 SQL 客户端,那么我怀疑我需要用另一种语言来执行此操作?
    • 您无法使用 jquery 直接连接到数据库。您可以通过 ajax() 方法加载服务器生成的页面。或者让您的服务器像您创建的原始 div 一样输出 html,然后使用 jquery 选择器将它们全部获取并附加这些东西。因此,假设 Fred div 已经在页面上,您可以将 $('&lt;div data-alt-text="Fred"&gt;F3-R06&lt;/div&gt;') 更改为 $('div')。输出带有类的 HTML 元素,以便您可以使用更具体的选择器。 &lt;div class="freds" data-alt-text="Fred"&gt;F3-R06&lt;/div&gt; 然后$('.freds').hover(...)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 2013-02-23
    • 2012-02-08
    • 2020-08-12
    • 1970-01-01
    • 2015-12-22
    相关资源
    最近更新 更多