0

我正在尝试找出在http://www.w3schools.com/jquery/trysel.asp?filename=trysel_basic&jqsel=p.intro,%23choose上找到的 jquery 选择器测试的代码。

我收到错误:

未捕获的语法错误,无法识别的表达式:“h1”jquery.js:4241

当我在文本框中输入 h1 时,在 Chrome 开发人员工具中。右边它应该突出显示<h1>标签内的“欢迎来到我的主页”。

有人可以指出我要去哪里错了吗?谢谢你。

以下是我的代码:

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $(":button").click(function(){
        var hl_str= '"'+$(":text").val()+'"';
        //document.write(hl_str);
        $(hl_str).effect("highlight",{color:"ff0000"},3000);
    });
})
</script>
</head>
<body>
<input type="text">
<input type="button" value="Edit and Click Me">
<h1>Welcome to My Homepage</h1>
<p class="intro">My name is Donald</p>
<p>I live in Duckburg</p>
<p>My best friend is Mickey</p>
Who is your favourite:
<ul id="choose">
<li>Goofy</li>
<li>Mickey</li>
<li>Pluto</li>
</ul>
</body>
</html>
4

4 回答 4

2

构建“hl_str”字符串时不需要引号。

尝试:

var hl_str = $(":text").val();
于 2012-06-29T07:21:05.047 回答
1

我认为您只是不匹配某些对象。我建议您尝试使用 contains 来搜索值

jQuery('p:contains("Donald")').effect("highlight",{color:"#ff0000"},3000);

http://api.jquery.com/contains-selector/

于 2012-06-29T07:27:21.113 回答
1

effect()不是 jQuery 的功能。

于 2012-06-29T07:35:30.410 回答
0

我并不完美,但我认为这是一种可能的方法:

JS:

$("input[type=button]").click(function(){
        var hl_str = $("input[type=text]").val();   

    $('#mycontainer').find('*').contents().each(function() {
        if(this.nodeType == 3) {
            var txt = $(this).text().replace(hl_str, '<span class="effect">'+hl_str+'</span>');
            $(this).parent().html(txt);
        }
    });

});

CSS:

.effect{ color: #ff0000; }

不起作用,就像您在此演示中看到的那样,但这是一个初始点 ;-)

于 2012-06-29T07:59:38.843 回答