我正在编写的代码适用于您选择图标并显示css行的应用程序,以便您轻松复制粘贴并将其用于其他项目。我在$(this)选择器上遇到了麻烦。我有几个div与#34;字形持有人"上课时我按下它并不重要,它总是改变" copy_text" div的值是同一个类,第一个。我想把它改成我按下的div。
我拥有的HTML是:
<div id="copy_text">Select icon</div>
<div class="glyph-holder">
<div class="glyph">
<div class="icon-flip-horizontal"></div>
</div>
<div class="beschrijving-bij-glyph">
icon-flip-horizontal
</div>
</div>
我目前拥有的javascript是:
$(document).ready(function(){
var displayText = "Empty";
$(".glyph-holder").click(function(){
if($(this).has("icon-flip-horizontal")){
displayText = "icon-flip-horizontal";
}else if($(this).has("icon-flip-vertical")){
displayText = "icon-flip-vertical";
}
$("#copy_text").text(displayText);
});
});
答案 0 :(得分:3)
has()
中的选择器缺少该类的.
前缀。您还需要检查生成的jQuery对象的length
属性。试试这个:
var displayText = "Empty";
$(".glyph-holder").click(function() {
if ($(this).has(".icon-flip-horizontal").length) {
displayText = "icon-flip-horizontal";
} else if ($(this).has(".icon-flip-vertical").length) {
displayText = "icon-flip-vertical";
}
$("#copy_text").text(displayText);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="copy_text">Select icon</div>
<div class="glyph-holder">
<div class="glyph">
<div class="icon-flip-horizontal"></div>
</div>
<div class="beschrijving-bij-glyph">
icon-flip-horizontal
</div>
</div>
答案 1 :(得分:0)
您当前没有指定has
正在寻找一个类,.has()
也返回一个jQuery对象,因此.length
应该用于测试数量元素。试试这个。
$(document).ready(function(){
var displayText = "Empty";
$(".glyph-holder").click(function(){
if($(this).has(".icon-flip-horizontal").length){
displayText = "icon-flip-horizontal";
}else if($(this).has(".icon-flip-vertical").length){
displayText = "icon-flip-vertical";
}
$("#copy_text").text(displayText);
});
});
注意,.
中的.has(".icon-flip-horizontal")
非常重要,因为它引用了一个类。
答案 2 :(得分:0)
您的目标是id
div,因此它只会定位一个div。您可以使用copy_text
函数通过div获取prev
div。
$(文件)。就绪(函数(){
var displayText = "Empty";
$(".glyph-holder").click(function(){
if($(this).has(".icon-flip-horizontal")){
displayText = "icon-flip-horizontal";
}else if($(this).has(".icon-flip-vertical")){
displayText = "icon-flip-vertical";
}
$(this).prev().text(displayText);
});
});