Javascript href始终触发的目标选择器
我试图检测Javascript href始终触发的目标选择器,javascript,jquery,Javascript,Jquery,我试图检测标签是否只包含href中的#,就像这样 if(“#卖家商店[href*=”#“]”){ 警报(“我包含#”) }否则{ 警报('我不包含#') } 您必须在此上下文中使用 if ($('#seller-shop').is('[href*="#"]')) { alert('I contain #') } else { alert('I do not contain #') } 或者你可以 if ($('#seller-shop[href*="#"]').length) {
标签是否只包含href
中的#
,就像这样
if(“#卖家商店[href*=”#“]”){
警报(“我包含#”)
}否则{
警报('我不包含#')
}
您必须在此上下文中使用
if ($('#seller-shop').is('[href*="#"]')) {
alert('I contain #')
} else {
alert('I do not contain #')
}
或者你可以
if ($('#seller-shop[href*="#"]').length) {
alert('I contain #')
} else {
alert('I do not contain #')
}
或者您可以通过href
使用
if (document.getElementById("seller-shop").href.includes("#")) {
alert('I contain #')
} else {
alert('I do not contain #')
}
由于非空字符串的计算结果总是true
if ('#seller-shop[href*="#"]') {
//--^^^^^^^^^^^^^^^^^^^^^^^^---- This is a simple string.
尝试以下操作:读取href值并将其与“#”
var hrefVAl=$(“#卖家商店”).attr(“[href*=”#“]);
如果(hrefVAl==“#”){
警报(“我包含#”)
}否则{
警报('我不包含#')
}
您的代码片段中有一个问题。#卖家商店[href=“#”]
是一个字符串,其值始终为true
if ('#seller-shop[href*="#"]') {
//--^^^^^^^^^^^^^^^^^^^^^^^^---- This is a simple string.
进一步的$('#卖家商店[href=“#”]”)
返回一个对象,该对象也将转换为true
。使用length
属性检查天气选择器是否匹配任何元素
if($('#卖家商店[href=“#“]').length){
警报(“我包含#”)
}否则{
警报('我不包含#')
}
检查href
属性
if($('#seller-shop').attr('href')=="#"){
alert('Only #')
} else {
alert('Other than #')
}
仅使用JAVASCRIPT:
window.onload = function () {
var element = document.querySelector('#seller-shop[href*="#"]');
if (element != null)
{
alert('I contain #');
}
else {
alert('I do not contain #');
}
}
你是否在锚点击事件上运行此代码?当前正在从外部数据库自动填充href,但偶尔会将其加载为占位符urlSimpleindexOf
。如果我使用其中任何一个,我似乎会收到意外的字符串
错误。现在它工作正常,这似乎已经足够了这是最简单的方法。你知道我的原始代码不起作用的原因吗?它不应该仍然通过#
选择吗?完美所有这些都是很好的答案,但这一个似乎是最深入的,因为meOP想检查#
是否准确,他说“标签只包含href中的#”。在这种情况下,IndexOf将给出开销。这个答案似乎非常适合我的情况,你知道我的原始代码不起作用的原因吗?你把字符串放在if条件中,它的计算结果不为true或false,因此总是放在else块中。您可以使用$('#卖家商店[href=“#”]”)。如果条件为1 if href=“#”则表示在其他部分中为真值。