我正在尝试写一条语句:'如果给定元素不包含以下文本,请执行某些操作。
我尝试过使用:contains
:
var openingHours = $('.opening-listing:nth-child(' + new Date().getDay() + ')');
if($(openingHours + ':contains("Closed")').length > 0){
//Do something
}
但是我遇到了语法错误。
有人知道我在这里做错了什么,或者是否有更好的方法来解决这个问题?
答案 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);
}
}
我希望这能为您提供有关如何解决问题的不同观点。祝好运!