Javascript变量

Javascript变量,javascript,variables,Javascript,Variables,可能很容易,但我想不出来。我有以下代码: var myNewHref = "#"+jQuery(this).attr('id'); jQuery(this).attr('href', myNewHref); jQuery(this).attr("id", ""); 在第一行中,我根据元素的id创建了新变量。在第二行中,我添加了一个带有myNewHref变量的href属性。在第三行中,我将id设置为空。问题是,如果我将id设置为空,它也会更改myNewHref变量并使其为空,但我希望它仍然使用m

可能很容易,但我想不出来。我有以下代码:

var myNewHref = "#"+jQuery(this).attr('id');
jQuery(this).attr('href', myNewHref);
jQuery(this).attr("id", "");

在第一行中,我根据元素的id创建了新变量。在第二行中,我添加了一个带有myNewHref变量的href属性。在第三行中,我将id设置为空。问题是,如果我将id设置为空,它也会更改myNewHref变量并使其为空,但我希望它仍然使用myNewHref设置。此外,在我将id分配给我的href之后,会执行清除id的操作。任何人都可以提供帮助?

如果您想摆脱
id
属性,请使用以下方法:

jQuery(this).removeAttr("id");
/* Or */
this.removeAttr("id");
或者,如果要将
id
置零,可以使用:

this.id = null;

看起来效果不错:


$(“#测试”)。单击(函数(){
var myNewHref=“#”+$(this.attr('id');
$(this.attr('href',myNewHref);
$(this.attr(“id”,”);
警报(“href:”+$(this.attr('href'));
警报(“id:”+$(this.attr('id'));
});
除非我多次运行代码,否则我将失败。但是,要正确清除ID,您只需使用:

this.id=null;

您需要确保代码不会运行多次。如果您的代码多次运行,则您的ID将已被删除,并且您的
href
属性将被设置为just
#
。如果您的代码位于基于该特定元素的事件处理程序中,您可以使用它只处理该事件一次。

它不应该这样做;这段代码在哪里运行?(另外,
jQuery(this.attr('id')
可能只是
this.id
。同样,使用
this.href=myNewHref
this.id=“”
。jQuery通常同时不必要,而且比等效的DOM API更复杂。)您确定发生了这样的情况吗?这似乎不正确,并确认您的代码工作正常。此外,正如其他人提到的,jQuery对于您正在执行的任务来说是不必要的(尽管除非有更多的上下文,否则也不会引起您的问题)。现在,在你的回答之后,我知道为什么会发生这种情况。这部分代码位于jQuery(window).resize(函数(){这里是代码})函数的内部。因此,当我改变浏览器id的大小时,它会随着窗口的每一个新尺寸而改变。这并不能真正解释所描述的行为。这取决于用例。但是更好的。
<a href="#" id="test">hello</a>

<script>
    $('#test').click(function(){
        var myNewHref = "#"+$(this).attr('id');
        $(this).attr('href', myNewHref);
        $(this).attr("id", "");
        alert("href: " + $(this).attr('href'));
        alert("id: " + $(this).attr('id'));
    });
</script>