1

所以我知道如何做这样的事情,但是我的 .each(function() 正在运行多个元素,我需要确保只有包含“24 小时开放”的跨度的 .modules 才会触发 div 的更改到“总是打开”,我不知道我做错了什么

if (thisTimeSet === 'Open 24 hours'){ 
    $(this).siblings("div").text("ALWAYS OPEN"); }

该应用程序的完整工作演示:http: //jsfiddle.net/DxaV7/ 我有很多评论,因为我对 js 很陌生,我需要自己走,虽然我在做什么(newb)

感谢您的任何帮助,您可以提供!

4

2 回答 2

3

尝试这个:-

这里的问题是您有许多具有相同文本的跨度,因此您的===不匹配。我只是使用 indexOf 来查找 atlease one 的实例,这意味着它是“始终打开”

if (thisTimeSet.indexOf('Open 24 hours') > -1) {
        $(this).find('.openOrNot').text("ALWAYS OPEN");
}

要补充的另一件事是,您不是在看兄弟姐妹,.module而是看它的孩子.openOrNot。所以你需要使用 find 向下而不是使用siblings.

演示

编辑:-根据您的评论,您可以选择仅可见的跨度

var thisTimeSet = $(this).children("span:visible").text();

演示

于 2013-05-21T01:05:36.447 回答
0
if (thisTimeSet === 'Open 24 hours'){ 
    $(this).siblings("div:contains('ALWAYS OPEN')"); }
于 2013-05-21T00:58:05.520 回答