2011-09-30 83 views
3

等等......我想是这样的:得到这个元素属性和使用它的其他元素

我。点击一个元素与ID与“菜单”开始它会得到它的ATTR值=”值'到一个变量中,并在下一个函数中使用它。

这里的源:

的index.html

<div id='menuBar' > 
    <img id='menu01' src='/si/img/menu.apresentacao.jpg' value='apresentacao' > 
    <img id='menu02' src='/si/img/menu.servicos.jpg' value='servicos' > 
</div> 

的jquery.js

$(document).ready(function() { 

$('img[id^='menu']').click(function(){ 

    var menuValue = $(this).attr('value'); 

    $('div#contentBox').fadeOut(300, function() { 
    $('div#contentBox').replaceWith('<div id="contentBox">' + menuValue + '</div>'); 
    }); 
}); 

}); 

variables.js

var servicos = "<p id='title'>Serviços</p><br><p id='text'>text text</p><br>"; 

在此先感谢*

+0

问题是? – Zirak

+1

小技巧:不要使用像$(“div#id”)这样的选择器,它会导致jQuery遍历页面上的所有div,这对您的性能确实非常糟糕。您应该只使用$(“#id”),因为id根据定义是唯一的,并且此选择器使用javascript的内置getElementById() - 选择DOM元素的最快方法。 – Przemek

+0

这里有一个错字:$('img [id^='menu']')。click ...这是从你的代码中确切的字符串吗?如果是这样,将单引号改为双引号$(“img [id^='menu']”) –

回答

0

与您的代码唯一的问题是,你的选择是畸形的,并为此不起作用:

$('img[id^='menu']').click(function(){ 
^ ^^^ 
    |  | | | 
    |  | | \__ Closing single quote 
    |  | | 
    |  | \__ Opening single quote 
    |  | 
    |  | 
    |  \__ Closing single quote 
    | 
    \__ Opening single quote 


    ====> does not compute! 

它应该是什么,这是(注意双引号围绕“菜单:):

$('img[id^="menu"]').click(function(){ 
     ^^
      | | 
      \ /
      \/
      \/ 
       \_Double quotes, yay! 

...它工作得很好:http://jsfiddle.net/HnsTu/

+0

我很笨,很痛。 ^^ –

+0

随着我们每天看到的括号和引号的数量,这种事情发生。不用担心,伙计。 – vzwick

+0

问题是,现在我想'var = menuValue'的值显示为一个变量。 (所以它到我的variable.js文件抓住相应的变量值,而不是只显示为纯文本) –

0

而不是使用var servicos使用图像值作为关键字的对象。

var menuValueContent = {'servicos': '<p>....</p>', 'apre': '...'}; 

并且在您的点击处理程序中,您可以使用menuValueContent[menuValue]来获取新内容。

相关问题