JQuery:if元素不包含文本

时间:2017-04-06 00:04:32

标签: javascript jquery

我正在尝试写一条语句:'如果给定元素包含以下文本,请执行某些操作。

我尝试过使用:contains

var openingHours = $('.opening-listing:nth-child(' + new Date().getDay() + ')');
if($(openingHours + ':contains("Closed")').length > 0){
 //Do something
}

但是我遇到了语法错误。

有人知道我在这里做错了什么,或者是否有更好的方法来解决这个问题?

3 个答案:

答案 0 :(得分:4)

openingHours是一个jQuery对象,而不是css选择器。您可以使用.text().indexOf():contains()内部使用

if (openingHours.text().indexOf("Closed") === -1) {
  // do stuff
}

答案 1 :(得分:0)

使用:not() CSS选择器。

var openingHours = $('.opening-listing:nth-child(' + new Date().getDay() + ')');
if($(openingHours).find(':not(:contains("Closed"))').length > 0){
 //Do something
}

答案 2 :(得分:0)

他们理解你的问题是这样的;你有一个HTML元素与一些内容(文本或数字)。并且您希望在决策制定中使用该内容,例如if-statement。

以下是我在repl.it click here中创建的代码示例。

我给每个元素一个唯一的id名称,以便我可以在JavaScript中调用它来进行决策。然后我添加onClick,它在JavaScript中调用一个函数。

 <form>
  <div>
    <input type="text" id="inputName" placeholder="Your name">
  </div>
  <input type="submit" onClick="getName()" value="Submit">
</form>

下一步是使用document.getElementById(tagName).value,它会在您单击“提交”按钮后接收您在输入字段中编写的内容。并将值设置为下一个变量,而不是复制整行代码。最后但并非最不重要的是,如果你有jQuery库,我还添加了一个例子,我更喜欢使用jQuery方法,因为它代码较少,对于初学者来说更容易理解。

function getName(){
      // Gets the value from HTML and inserts the result in new variable called inputName
      var inputName = document.getElementById("inputName").value;

      // This works only if you have jQuery library included in html part 
      //var inputName = $("#inputName").val();

      // If-statement
      if(inputName === "Peter"){
        alert("Name is = " + inputName);
      } else if(inputName === "Jacob"){
        alert("Name is = " + inputName);
      }
    }

我希望这能为您提供有关如何解决问题的不同观点。祝好运!