Jquery 脚本不会看到 2 div 之间的区别



我有一个包含我的项目的数据库,表名为:项目。在此表中,我有 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/

最新更新