我有一个包含我的项目的数据库,表名为:项目。在此表中,我有 3 列:
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>';
}
每个 ting 都已经加载到我的网站中,但现在我想使用 jQuery 检查 titel 是否等于某些东西。
现在我有这个代码,但它仅适用于 1div。如果我在我的数据库中制作第二个div,它会加载到我的网站中,但当我单击它们中的每一个时,它会说警报"测试"。
似乎我的代码不会在我的div 中看到 2 个标题之间的区别
$('.project_box').click(function() {
if ($('.project_text').text() == "Portefolio"){
window.location.href = "portefolio/";
}else if ($('.project_text').text() == "test"){
alert('test');
}
});
.project_box
是我加载我的、标题和 BLOB 的div,然后单击我想检查项目文本是否等于某些内容。
.project_text
是项目的标题文本。
我希望它对你来说很清楚,它真的会对我有所帮助!
谢谢。
当你有多个<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()
部分的时间。
$('.project_box').click(function() {
switch ($(this).find('.project_text').text()) {
case "Portefolio":
window.location.href = "portefolio/";
break;
default:
alert("test");
break;
}
});
可以解决您的问题:
更好的使用方式children()
:
将你的jQuery替换为:
$('.project_box').click(function() {
var strText = $(this).children(".project_text").text();
if (strText == "Portefolio"){
alert("portefolio");
}else if (strText == "test"){
alert('test');
}
});
Demo:http://jsfiddle.net/a6NJk/676/