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 已经在页面上,您可以将$('<div data-alt-text="Fred">F3-R06</div>')
更改为 $('div')
。输出带有类的 HTML 元素,以便您可以使用更具体的选择器。 <div class="freds" data-alt-text="Fred">F3-R06</div>
然后$('.freds').hover(...)
。以上是关于jQuery制作带有多个参数的div标签如何在里面使用引号的主要内容,如果未能解决你的问题,请参考以下文章