在jQuery上反转元属性
我试图通过使用jQuery函数反转元属性(内容和名称),但前提是元内容以“some”开头在jQuery上反转元属性,jquery,attributes,meta,Jquery,Attributes,Meta,我试图通过使用jQuery函数反转元属性(内容和名称),但前提是元内容以“some”开头 我尝试过这个函数: <script> $('meta').ready(function(){ var a_metaname = $(this).attr("name"); var a_metacontent = $(this).attr("content"); if(a_metacontent^="some") { $('head').append("<meta name="+ a_
我尝试过这个函数:
<script>
$('meta').ready(function(){
var a_metaname = $(this).attr("name");
var a_metacontent = $(this).attr("content");
if(a_metacontent^="some") {
$('head').append("<meta name="+ a_metacontent +" content="+ a_metaname +" />");
}
});
</script>
$('meta').ready(函数(){
var a_metaname=$(this.attr(“name”);
var a_metacontent=$(this.attr(“content”);
如果(a_metacontent^=“some”){
$('head')。追加(“”);
}
});
但它不会反转每个元的名称/内容
如何改进功能?谢谢 更换这个
if (a_metacontent.match(new RegExp('some[a-z0-9A-Z]+$'))){
$('head').append("<meta name="+ a_metacontent +" content="+ a_metaname +" />");
}
if(a_metacontent.match(新RegExp('some[a-z0-9A-Z]+$)){
$('head')。追加(“”);
}
在这里,您可能混淆了两件事:$('meta')。每个(…)
都将迭代所有meta标记<代码>$(文档).ready(…)等待就绪事件<代码>$('meta')。ready(…)可能不会按您的想法执行
由于stript
标记被放置在meta
标记之后,因此不需要等待ready
事件。不确定是否可以在初始加载后修改meta标记(据我所知,大多数meta标记会更快生效)。因此,我建议不要等待
与CSS不同,
^=
在Javascript中并不表示“以开始”。相反,^=
执行按位异或运算(将两个操作数转换为整数后),并将结果赋回。您可以使用indexOf
来实现“从开始”功能,也可以使用正则表达式
if(/^some/.test(a_metacontent)){
还要注意
$('meta').each(function(){
if(/^some/.test($(this).attr("content"))) {
...
}
}
可以替换为
$('meta[content^="some"]').each(function(){
...
})
@undefined不是按位XOR和Assign吗?@JanDvorak是的,我忘了JavaScript支持这一点。顺便问一下,我可以知道做这样的事情你想要实现什么吗?这有点复杂,但基本上代码在几周内是不可编辑的,我没有选择使用jQuery来节省我的项目时间!)这很有道理,非常感谢Jan Dvorak和@user546305
if(a_metacontent^="some") {
if(/^some/.test(a_metacontent)){
$('head').append("<meta name="+ a_metacontent +" content="+ a_metaname +" />");
$(this).attr("content", a_metaname).attr("name", a_metacontent)
$('meta').each(function(){
if(/^some/.test($(this).attr("content"))) {
...
}
}
$('meta[content^="some"]').each(function(){
...
})