jQuery同位素if/else使用indexOf时出现问题
jQuery Isotope if/else issues with using indexOf
我正在使用jQuery Isotope,并尝试使用changeMe
更改div类中的HTML文本,基于if/else:
var $chofval = $(".changeMe").html(filterAttr);
// search if it contains these strings
if ($chofval.indexOf("*") >= 0) {
$(".changeMe").html("All Apples");
} else if ($chofval.indexOf(".green") >= 0) {
$(".changeMe").html("Green Apples");
}
但它会点击*
和.green
按钮。你猜我哪里错了吗?
完整代码:
<script>
function getHashFilter() {
// get filter=filterName
var matches = location.hash.match( /filter=([^&]+)/i );
var hashFilter = matches && matches[1];
return hashFilter && decodeURIComponent( hashFilter );
}
$( function() {
var $container = $('.isotope');
// bind filter button click
var $filterButtonGroup = $('.filter-button-group');
$filterButtonGroup.on( 'click', 'button', function() {
var filterAttr = $( this ).attr('data-filter');
// set filter in hash
location.hash = 'filter=' + encodeURIComponent( filterAttr );
var $chofval = $(".changeMe").html(filterAttr);
// search if it contains these strings
if ($chofval.indexOf("*") >= 0) {
$(".changeMe").html("All Apples");
} else if ($chofval.indexOf(".green") >= 0) {
$(".changeMe").html("Green Apples");
}
});
// bind filter on select change
$('.filters-select').on( 'change', function() {
// get filter value from option value
var filterValue = this.value;
// use filterFn if matches value
filterValue = filterFns[ filterValue ] || filterValue;
$container.isotope({ filter: filterValue });
});
var isIsotopeInit = false;
function onHashchange() {
var hashFilter = getHashFilter();
if ( !hashFilter && isIsotopeInit ) {
return;
}
isIsotopeInit = true;
// filter isotope
$container.isotope({
itemSelector: '.offer-type',
layoutMode: 'fitRows',
// use filterFns
filter: filterFns[ hashFilter ] || hashFilter
});
// set selected class on button
if ( hashFilter ) {
$filterButtonGroup.find('.is-checked').removeClass('is-checked');
$filterButtonGroup.find('[data-filter="' + hashFilter + '"]').addClass('is-checked');
}
}
$(window).on( 'hashchange', onHashchange );
// trigger event handler to init Isotope
onHashchange();
});
//@ sourceURL=pen.js
</script>
此行使用filterAttr的值更改".changeMe"的内容,并且不能返回".changeMe"对象的内容值。
var $chofval = $(".changeMe").html(filterAttr);
如果你想获得".changeMe"的内容来评估使用:
var $chofval = $(".changeMe").html();
但是,如果您试图获取定义为filterAttr的entitiy.changeMe的属性值,请使用:
var $chofval = $(".changeMe").attr(filterAttr);
或者最后,如果filterAttr是要检查的真实值,请在句子中使用此值对其进行评估:
if(filterAttr.indexOf("*") >= 0){
$(".changeMe").html("All Apples");
} else if(filterAttr.indexOf(".green") >= 0){
$(".changeMe").html("Green Apples");
}
请参阅JQuery Attr
if(filterAttr == "*") {
$(".Me").html("All Apples");
}
else if(filterAttr == ".green") {
$(".changeMe").html("Green Apples");
}
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- jQuery同位素if/else使用indexOf时出现问题
- javascript与indexOf有问题
- 简单纸牌游戏javascript中的indexOf问题
- 数组indexOf和过滤器实现的IE给其他问题
- Javascript数组indexOf by Key,Value问题
- 子字符串上的indexOf和lastIndexOf问题-从字符串中获取URL的一部分