jQuery选择器和css错误

时间:2013-05-22 02:59:33

标签: jquery css

问题1:我有三个变量。 className引用一个字符串。 back包含内容和链接包含一个 html字符串。我正在尝试将内容分配给任何变量className引用。

var back = "test";
var className = "link1";
var link1 = '<div id="back" class="gohome"></div><div class="link3"></div><div class="link4"></div>';

因为以下代码似乎对我不起作用

$(className) = className + back;

问题2:以下代码似乎没有更新prevClass包含的任何变量的CSS。

       $('[id*="back"]').each(function(){
            $('.' + prevClass).css({'left': '-123px'});
            $('.' + prevClass).css({'top': '430px'});
            $('.' + prevClass).css({'width': '123px'});
            $('.' + prevClass).css({'height': '44px'});

<script type="text/javascript">

    var back = "";
    var prevClass = "start"
    var className = "Broken";

    start = '<div id="back" class="gohome"></div><div class="link1"></div><div class="link2"></div>';
    gohome = '<div class="gohome"></div><div class="start"></div>';
    link1 = '<div id="back" class="gohome"></div><div class="link3"></div><div class="link4"></div>';
    link2 = '<div class="gohome"></div>';
    link3 = '<div id="back" class="gohome"></div><div class="link5"></div><div class="link6"></div>';
    link4 = '<div class="gohome"></div><div class="link7"></div><div class="link8"></div>';
    link5 = '<div class="gohome"></div><div class="link2a"></div><div class="link10"></div>';
    link6 = '<div class="gohome"></div><div class="link7"></div><div class="link11"></div>';
    link6a = '<div class="gohome"></div><div class="link7"></div><div class="link11"></div>';
    link7 = '<div class="gohome"></div><div class="link6a"></div><div class="link9"></div>';
    link8 = '<div class="gohome"></div><div class="link2a"></div><div class="link10"></div>';
    link9 = '<div class="gohome"></div><div class="link10a"></div>';
    link10 = '<div class="gohome"></div><div class="link12"></div><div class="link13"></div>';
    link10a = '<div class="gohome"></div><div class="link12"></div><div class="link13"></div>';
    link11 = '<div class="gohome"></div><div class="link10a"></div>';
    link12 = '<div class="gohome"></div><div class="link12"></div><div class="link13"></div>';
    link13 = '<div class="gohome"></div><div class="link14"></div><div class="link15"></div>';
    link14 = '<div class="gohome"></div>';
    link15 = '<div class="gohome"></div><div class="link16"></div><div class="link17"></div>';  
    link16 = '<div class="gohome"></div>';
    link17 = '<div class="gohome"></div><div class="link18"></div><div class="link19"></div>';
    link18 = '<div class="gohome"></div>';
    link19 = '<div class="gohome"></div><div class="link20"></div><div class="link21"></div>';
    link20 = '<div class="gohome"></div>';
    link21 = '<div class="gohome"></div>';



   $(document).on('click', '.inter [class]', function () {
   className = this.className; 
   $('[id*="back"]').each(function(){
        $('.' + prevClass).css({'left': '123px'});
        $('.' + prevClass).css({'top': '430px'});
        $('.' + prevClass).css({'width': '123px'});
        $('.' + prevClass).css({'height': '44px'});
    });

   back = '<div class="' + prevClass + '"></div>';
   $('.' + className).html(back);
   prevClass = className;
       $('.inter').fadeTo(250, 0.25, function () {
           $('.inter').html(window[className]); 

           $('.inter').css({'background-image': 'url("' + className + '.png")'});
           $('.inter').fadeTo(250, 1.00);

       });
   });

</script> 

4 个答案:

答案 0 :(得分:2)

对于第一个问题,您需要更聪明地选择和更新。由于classname是一个类名,你想要:

$('.' + className)

(就像你已经找到问题#2)

如果您想更新内容(使用后退):

$('.' + className).html(back);

对于问题#2,目前尚不清楚你要做什么。

首先,DOM中是否已#back?这对你的link1变量不起作用。第二,什么是prevClass应该是什么?

答案 1 :(得分:0)

使用jQuery时,您可以轻松地轻松选择ID:

$('#back')

我不确定你在等号之前对*的期望是什么?

答案 2 :(得分:0)

您的className是锚标记吗?你可以做这样的事情

$('.className').attr('href', link1 +'/'+ back);

答案 3 :(得分:0)

问题1:

$(className) = className + back; 

只需将值link1test指定给变量$(className)

例如:$(className) = "link1test"

如果“... back包含内容...”和“......您正在尝试将内容分配给任何变量className引用...”那么您将使用。

$('。'+ className).html(back);

问题2:

选择器可能不正确。您是否尝试选择ID为back的单个元素,然后使用类prevClass更改子级的css。如果是这样,这应该有效。

   $('#back').each(function(){
        $('.' + prevClass).css({'left': '-123px'});
        $('.' + prevClass).css({'top': '430px'});
        $('.' + prevClass).css({'width': '123px'});
        $('.' + prevClass).css({'height': '44px'});
    });