目标选择器由href始终触发

时间:2016-04-13 10:22:49

标签: javascript jquery

我正在尝试检测a中的#标记是否只包含href



if ('#seller-shop[href*="#"]') {
  alert('I contain #')
} else {
  alert('I do not contain #')
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<a id="seller-shop" href="www.foo.bar">Seller Shop</a>
&#13;
&#13;
&#13;

但出于某种原因,不管href我在这里缺少什么,它总是会被解雇?

5 个答案:

答案 0 :(得分:1)

您必须在此背景下使用.is()

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 #')
}

或者您可以includes使用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.

答案 1 :(得分:1)

试试这个:读取href值并将其与"#"进行比较

var hrefVAl = $('#seller-shop').attr('[href*="#"]');
if (hrefVAl=="#") {
  alert('I contain #')
} else {
  alert('I do not contain #')
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<a id="seller-shop" href="www.foo.bar">Seller Shop</a>

答案 2 :(得分:1)

您的代码段中存在一个问题'#seller-shop[href="#"]字符串始终评估为true

进一步$('#seller-shop[href="#"]')会返回一个也会屈服于true的对象。使用length属性检查天气选择器是否匹配任何元素。

if ($('#seller-shop[href="#"]').length) {
  alert('I contain #')
} else {
  alert('I do not contain #')
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<a id="seller-shop" href="www.foo.com">Seller Shop</a>

答案 3 :(得分:0)

检查href属性

if($('#seller-shop').attr('href')=="#"){
  alert('Only #')
} else {
  alert('Other than #')
}

答案 4 :(得分:0)

仅使用JAVASCRIPT:

window.onload = function () {
var element =  document.querySelector('#seller-shop[href*="#"]');
if (element != null)
{
 alert('I contain #');
}
else {
  alert('I do not contain #');
}
}