2014-02-26 54 views
0

我有一個數據庫與我的項目,表稱爲:項目。在這個表,我有3列:jquery腳本不會看到2 div的差異

ID, Titel, BLOB 

這是我的PHP:

{ 
    echo '<div class="project_box">'; 
    echo '<p class="project_text">' . $row['titel'] . '</p>'; 
    echo '<img class="project_box_image" src="data:image/jpeg;base64,' . base64_encode($row['image']) . '" width="200" height="200"</img>'; 
    echo '</div>'; 
    } 

每廷負荷已經到我的網站,但現在我要檢查,如果影片名稱等於什麼東西,用jQuery 。

現在我有這個代碼,但它只適用於1格。如果我在我的數據庫中創建第二個div,它將加載到我的網站中,但是當我點擊其中的每個時,它都會提示「測試」。

看來我的代碼不會看到2個冠軍在我的div的

$('.project_box').click(function() { 
    if ($('.project_text').text() == "Portefolio"){ 
     window.location.href = "portefolio/"; 
    }else if ($('.project_text').text() == "test"){ 
     alert('test'); 
    } 
}); 

.project_box是div我加載我,標題和BLOB之間的差異,並點擊我要檢查的項目文本等於一些東西。

.project_text是該項目的標題文本。

我希望它對你清楚,它會真的幫助我出去!

謝謝。

回答

1

它似乎能解決你的問題:

更好的方式使用children()
本替換你的jQuery:

$('.project_box').click(function() { 
    var strText = $(this).children(".project_text").text(); 
    if (strText == "Portefolio"){ 
     alert("portefolio"); 
    }else if (strText == "test"){ 
     alert('test'); 
    } 
    }); 

演示:http://jsfiddle.net/a6NJk/676/

+0

這一個工程!謝謝! – user3313356

+0

它只能用,因爲'project_text'裏面的文本是框中唯一的文本。如果您決定(稍後)向框中添加更多文本(但不是標題),則不再有效。 – kero

+0

@ user3313356:看到我更新的答案和現場演示 –

2

當你有多個<p class="project_text">如何你認爲jQuery解釋$('.project_text')?您可以使用.find()獲取單擊框內的類。

$('.project_box').click(function() { 
    if ($(this).find('.project_text').text() == "Portefolio"){ 
     window.location.href = "portefolio/"; 
    }else if ($(this).find('.project_text').text() == "test"){ 
     alert('test'); 
    } 
}); 

我覺得switch()會更好,這裏爲好,可以節省您的.text()部分多次寫。

+0

它的工作原理!非常感謝你。 – user3313356

+0

我在第一種情況下想過一個案例,但是當我如果不工作時我認爲它不起作用。 但這種情況要好得多;)再次感謝! – user3313356

+0

它們完全可以互換。正如我所說的問題是,你現在必須上課,所以'$('。project_text')'不再返回一個單一的對象。 – kero