如何将变量作为jQuery .attr的值传递?

时间:2011-06-29 08:10:14

标签: javascript jquery

使用jQuery attr()将变量作为值传递的正确语法是什么。我想做的是:

var under700 = 'image.jpg'

$('.two_images img').attr('src', (under700) );

修改

从答复来看,我可能过于简单了。如果这增加了任何清晰度,这是函数的其余部分。

    $(document).ready(function() {
     function imageresize() {
         var contentwidth = $('#two_up').width();
         var under700 = '<?php bloginfo('template_url'); ?>/scripts/timthumb.php?src=<?php echo $image_img_tag[0] ?>&w=340'
         if ((contentwidth) < '700'){
     // I also tried defining the variable here
             $('.two_images img').attr('src', under700 );
             } else { 
     // this one works fine
             $('.two_images img').attr('src','<?php echo $image_img_tag[0] ?>');
             }
     }
 imageresize();//Triggers when document first loads     
 $(window).bind("resize", function(){//Adjusts image when browser resized
 imageresize();
});

4 个答案:

答案 0 :(得分:2)

$('.two_images img').attr('src', under700);

不需要内支架,但它们不会阻止它工作。

答案 1 :(得分:1)

你是否尝试过没有php的代码?看起来你可能在这一行上有太多单引号的问题,但是如果没有看到文档的其余内容就很难分辨。

尝试用简单的字符串替换php echos,例如:var under700 = '123';,并确保使用半冒号结束变量声明行,看起来可能也会丢失,并且可能导致奇怪的错误。

答案 2 :(得分:0)

我认为这一行是错误的:

if ((contentwidth) < '700'){

jQuery的width()函数返回一个整数,因此您不需要700周围的引号:

if(contentwidth < 700) {

试试。

答案 3 :(得分:0)

<script>
  // declare early
  function imageresize() {
    var contentwidth = $('#two_up').width();
    // double quoted: "template_url" and missing ; at the end of line
    var under700 = '<?php bloginfo("template_url"); ?>/scripts/timthumb.php?src=<?php echo $image_img_tag[0] ?>&w=340';
    // extra parentheses for contentwidth are not necessary
    if (contentwidth < 700)
      $('.two_images img').attr('src', under700 );
    else
      $('.two_images img').attr('src','<?php echo $image_img_tag[0] ?>');
  }

  // run after document is ready
  $(document).ready(function() {
    imageresize();
  });
</script>

虚拟例子:

<?php
// test.php
function bloginfo($a) {
  echo "http://somebloginfo.com/qwerty";
} 

$image_img_tag = array("someimagtag.jpg");

?>

<html>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
    <script>

    function imageresize() {
      var contentwidth = $('#two_up').width();
      var under700 = '<?php bloginfo("template_url"); ?>/scripts/timthumb.php?src=<?php echo $image_img_tag[0] ?>&w=340';
      if (contentwidth < 700)
        $('.two_images img').attr('src', under700 );
      else
        $('.two_images img').attr('src','<?php echo $image_img_tag[0] ?>');
    }

    $(document).ready(function() {
      imageresize();
    });
    </script>
  </head>
  <body>
    test
    <div id='two_up' style="width: 400px;"></div>
    <div class="two_images">
      <img />
      <img />
    </div>
  </body>
</html>