动态更改选择器文本
我有一个’下一个’按钮,淡出一个div,显示另一个,更改一个图形然后…我希望它改变’下一个’按钮的实际ID但是.html
和replaceWith
似乎都没有。
我有这个:
$(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文件的位置为了看到它的工作):
在旁注中,下面的行可能没有完全按照您的要求运行 – 一旦运行, #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_btn
是input
以外的元素时,此选项才有效。 如果是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/