动态更改选择器文本

我有一个’下一个’按钮,淡出一个div,显示另一个,更改一个图形然后…我希望它改变’下一个’按钮的实际ID但是.htmlreplaceWith似乎都没有。

我有这个:

 $(document).ready(function(){ $('#portfolio').fadeTo(500,0.25); $('#account') .animate({width:"10.1875em",height:"11.1875em",duration:'medium'}); $('#next2_btn').click(function(){ $('#content').fadeTo(300, 0.0, function() { $('#content2').show(300, function() { $('#next2_btn').$('#next2_btn'.value).html('') $('#account').fadeTo(500,1.0) .animate({marginLeft:"220px", width:"2em",'height' :"2em",duration:'medium'}) .animate({   marginLeft:"400px",   marginTop:"35px",   width:"7em",   height:"7em", duration:"medium"   }, 'medium', 'linear', function() {   $('#statusGraphic').replaceWith('');   }) .fadeTo(500,0.5); $('#portfolio') .fadeTo(500,1.5) .animate({marginLeft:"-175px", width:"2em",height:"2.5em",duration:'medium'}) .animate({marginLeft:"-330px", width:"8.5em",height:"9.9375em",duration:'medium'}); }); }) }) 

我猜这是应该更改id的行(无效):

 $('#next2_btn').$('#next2_btn'.value).html('') 

以下是更改地图内部区域的id属性的工作示例 – 经过测试和确认在Firefox,Chrome和IE8中工作(您需要将https://stackoverflow.com/questions/3007209/dynamically-changing-the-selector-text/1.jpg图像复制到包含此代码的.html文件的位置为了看到它的工作):

          next2_btn     

在旁注中,下面的行可能没有完全按照您的要求运行 – 一旦运行, #statusGraphic将不再存在。

 $('#statusGraphic').replaceWith(''); 

我不确定#statusGraphic是什么类型的元素,但如果它已经是图像,你可以这样做:

 $('#statusGraphic').attr('src', 'https://stackoverflow.com/questions/3007209/dynamically-changing-the-selector-text/state2_138x28.gif'); 

如果它还不是图像,可能会添加图像:

 $('#statusGraphic').append(''); 

以后可以删除:

 $('#statusGraphic').empty(); 

这部分很奇怪:

 $('#next2_btn'.value) 

那个问题很可能就在那里……

我不确定我理解你想要完成什么的完整机制,但这是无效的:

 $('#next2_btn').$('#next2_btn'.value).html('') 

这将要求jQuery首先找到#next2_btn元素(即$('#next2_btn') ),然后尝试在结果上调用.$()函数。 该function不存在。

此外,表达式'#next2_btn'.value尝试访问字符串'#next2_btn'.value属性,该属性也不存在。

所以我们在中间位有两个错误,每个错误都足以破坏整个语句。

也许你的意思是:

 $('#next2_btn').html(''); 

这只是找到#next2_btn并将HTML内部设置为

标记。 仅当#next2_btninput 以外的元素时,此选项才有效。 如果是input ,则无法更改其HTML; 您只能使用.val('...')方法更改其值。 (或者完全用.replaceWith()方法替换它。)

对不起,我发布了一些“测试”代码……那条线不存在。

我想更改链接的ID,以便我可以再次使用该链接,只加载其他内容。 所以我的HTML是:

    

并且在他们单击此之后,前面的代码运行以淡化现有div,显示隐藏的div,并在三个图形上启动某个动画。 所以,在那之后,我希望更改id,以便我可以编写新的动画并用相同的链接替换图形。 这是为了避免刷新。

所以,我只是想看看是否可以更改链接上的初始ID。 我首先尝试选择div并重写你在上面看到的整个html。 然后,我尝试选择ID并使用上面建议的属性,但还没有任何工作。

谢谢

id确实发生了变化,只是代码已经被分配给元素而不管它的未来id值如何。

你应该使用live方法绑定click事件..

 $('#next2_btn').live('click', function(){ ../*code for the button with id next2_btn which will change the id of the clicked element to anotherID*/... // at some point run the following command $(this).attr('id','anotherID'); }); $('#anotherID').live('click', function(){../*code that will run from elements that have #anotherID no matter when they get this id*/...}); 

在这里查看一个实例: http : //www.jsfiddle.net/6mFht/