2011-10-01 57 views
1

這是一個不是我的實際代碼的簡單示例。該div button onclick,我如何替換後的錨標記或父div title的HTML?這裏的jQuery代碼取代了div title中的所有內容,我只想替換錨標記之後的內容。在錨標籤後替換div的html?

腳本

$(function() { 

    $('.button').live('click',function() { 
    var info = $(this).next('.information').html(); 
    $(this).next('.title').html(info); 
    }); 
}); 

HTML

<div class='container'> 
    <div class='button'>Click Me</div> 
    <div class='information' style='display:none;'>information</div> 
    <div class='title'><a href='http://www.example.com/' class='link'></a>title</div> 
</div> 

回答

1

工作,你應該包裝,在一個span

<div class='title'><a href='http://www.example.com/' class='link'></a><span>title</span></div> 

和目標與

$(function() { 
    $('.button').live('click',function() { 
     var self = $(this); 
     var info = self.nextAll('.information').html(); 
     self.nextAll('.title').find('span').html(info); 
    }); 
}); 
0

,而不是與prev()next()工作,嘗試用siblings()

$('.button').live('click',function() { 

var info = $(this).siblings('.information').html(); 

$(this).siblings('.title').html(info); 

}); 
+0

我只是想更換錨標記後的HTML,我該怎麼做呢? – user892134

1

有一對夫婦的事情,我改變了,我覺得這個的jsfiddle接近你所需要的 - http://jsfiddle.net/FloydPink/LHPT2/

1)$title也許應該是內錨定標記

2)information div應位於按鈕之前,因爲您正在使用.prev()

試試這個:

<script type="text/javascript"> 
$(function() { 
    $('.button').live('click', function() { 
     var info = $(this).prev('.information').html(); 
     $(this).next('.title').children('a').text(info); 
    }); 
}); 

</script> 
<?php 

while ($row=mysql_fetch_assoc($query)) { 

$id = $row['id']; 
$title = $row['title']; 
$information = $row['information']; 

echo "<div class='container'> 
<div class='information' style='display:none;'>$information</div> 
<div class='button'>Click Me</div> 
<div class='title'><a href='http://www.example.com/' class='link'>$title</a></div> 
</div>"; 

} 

?>