jQuery制作带有多个参数的div标签如何在里面使用引号

Posted

技术标签:

【中文标题】jQuery制作带有多个参数的div标签如何在里面使用引号【英文标题】:jQuery making adiv tag with muiltiple parameters how to use Quotes inside 【发布时间】: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>

【问题讨论】:

【参考方案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(...)

以上是关于jQuery制作带有多个参数的div标签如何在里面使用引号的主要内容,如果未能解决你的问题,请参考以下文章

jQuery EasyUI 下拉菜单制作

jQuery:如何更改标签名称?

Jquery如何取得DIV里面的多个IMG并且设置他们的值

HTML网页怎样链接到另一个HTML网页?

使用JQuery制作一个简单的div弹出窗体

如何使用 jQuery 在多个 div 中创建查询选择器?