我知道你可以使用 :contains 获取 innerHTML 中包含特定字符串的元素,但是如何获取 innerHTML 以某个字符串开头的元素呢?
我知道你可以使用 :contains 获取 innerHTML 中包含特定字符串的元素,但是如何获取 innerHTML 以某个字符串开头的元素呢?
使用筛选函数,您可以根据任何标准进行筛选:
var spans = $("span").filter(function(idx) {
return this.innerHTML.indexOf(myString) == 0;
});
this.innerHTML
可以起作用,而且更加经济实惠。 - Nick Craver我知道这个问题比较老,但如果有人在寻找更好的解答,自jQuery v1.1.4以来已经提供了一个名为":contains("text")"的选择器。
示例HTML:
<p>Please reply above this line...</p>
下面是一个使用jQuery选择器的HTML示例:
$('p:contains("Please reply above this line")');
:contains
,但需要一些只基于innerHTML字符串开头进行过滤的方法。因此@joshperry提供的解决方案是正确的。 - Richard Williams您可以像这样做:
<!doctype HTML>
<html>
<head>
<script type = "text/javascript" language = "JavaScript" src = "jquery-1.4.2.min.js"></script>
<script type = "text/javascript" language = "JavaScript">
var elems;
$(document).ready(function(){
$("div").each(function(){
var content = $(this).html();
if (content.match(/asdf/)){
alert(content);
}
});
});
</script>
</head>
<body>
<div>asdfaowhguiwehgiuh</div>
<div>asdfaowhguiwehgiuh</div>
<div>fdsaaowhguiwehgiuh</div>
<div>fdsaaowhguiwehgiuh</div>
<div>fdsaaowhguiwehgiuh</div>
<div>asdfaowhguiwehgiuh</div>
</body>
</html>
为了查找是否在内容中..如果您想要前几个字符,应该在这些字符上分割内容并仅测试它。
过滤器方法可以让您比较元素的内容,然后您可以按照自己的意愿进行操作(在这种情况下,我已经执行了addClass('selected')
)。
$('p').filter(function() {
var searchString = 'Blue';
return ($(this).html().substring(0, searchString.length) == searchString);
}).addClass('selected');
演示: