Jquery将this.Text()作为标识符传递

时间:2015-08-09 17:22:37

标签: javascript jquery html css

基本上我只是试图获取this.Text()的值并使用该值编辑所有类的css。

<div>
     <img class="First" style="display:none">
     <img class="Second" style="display:none">
     <img class="Third" style="display:none">
     <p><span class="firstWord">First</span> phrase</p>
</div>

<div>
     <img class="First" style="display:none">
     <img class="Second" style="display:none">
     <img class="Third" style="display:none">
     <p><span class="firstWord">Second</span> phrase</p>
</div>

<div>
     <img class="First" style="display:none">
     <img class="Second" style="display:none">
     <img class="Third" style="display:none">
     <p><span class="firstWord">Third</span> phrase</p>
</div>

我使用这段代码来获取第一个单词,但我对如何传递this.Text作为标识符有点失落。我只是试图用一个与this.Text()的值相同的类取消隐藏图像:

$('.firstWord').each(function() { 
     fwtext = $(this).text();
     $('#' $fwtext).css("display", "block");
});

div及其中的所有标签都是动态生成和重复的,所以我不能继续编辑它们。

非常感谢每个人的帮助。

3 个答案:

答案 0 :(得分:1)

这是错误的:

 $('#' + $fwtext)
//-----^

添加+进行连接。此外,由于您使用的是class而非id,因此您必须使用.代替#

 $('.' + $fwtext)

答案 1 :(得分:0)

删除$符号并添加+代替

 $('#'+ fwtext).css("display", "block");

根据您的评论,这里是编辑

$('.firstWord').each(function() { 
     $('<div></div>').text($(this).text()).css("display", "block");
});

答案 2 :(得分:0)

您的img代码有一个类,而不是id。所以你的jQuery选择器应该是这样的:$("." + fwtext)。是的 - 它只会在相应的div中显示必要的图像。 jsFiddle进行测试。

$(".firstWord").each(function () {
    var fwtext = $(this).text();
    var currentBlock = $(this).parents("div");
    currentBlock.find("." + fwtext).show();
});