我只是想知道我是否可以得到一些指示。
我正在使用简写,如果根据是否切换div来更改文本。
这就是我对文本转换器所拥有的:
$(this).text($(this).text() == 'Email Me' ? 'Close Form' : 'Email Me');
我想按照这些行来更改锚点的title属性。我尝试使用以下内容:
$(this).text($(this).attr('title', == 'Email Me' ? 'Close Form' : 'Email Me')); //This throws up syntax errors in firebug because of where the == is placed
我也尝试过如下:
$(this).text($(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me'); //This doesn't change the attribute at all.
我想我可能只是真的很蠢但我无法想出这个。我用谷歌搜索了它,似乎无法找到明确的答案。
只是想知道你是否对我可能出错的地方有任何建议。
提前致谢
答案 0 :(得分:4)
您不应该使用attr
吗?
$(this).attr("title", $(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me');
而不是:
$(this).text($(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me'); //This doesn't change the attribute at all.
答案 1 :(得分:3)
如果要更改属性,请更改属性,而不是文本:
$(this).attr('title', $(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me');
请注意title
是一个反射属性,因此如果没有jQuery,您可以更有效地执行此操作:
this.title = this.title == 'Email Me' ? 'Close Form' : 'Email Me';
但为了提高效率,你必须做成千上万次。
condition ? value : otherValue
事件被称为“三元”运算符。它经常被称为“三元”运算符,但“三元”只意味着它有三个操作数(“二元”运算符[如+
中的1 + 1
]有两个,一个“一元”运算符[如-
中的-n
只有一个),所以从技术上讲,它是“一个”三元运算符。我只是大多数类似C语言的唯一一个......
答案 2 :(得分:0)
事实证明,这是我运行的插件的问题。我有一些醉意的插件来提供精美的工具提示。
一旦我停止使用它作为标签上的title属性,切换就完美了。我现在必须弄明白为什么这样做。
感谢您的帮助