Javascript 删除变量值中的选择器条件
我正在创建一个网上商店,带有指向产品的特定链接,例如() 我正在使用以下代码Javascript 删除变量值中的选择器条件,javascript,jquery,Javascript,Jquery,我正在创建一个网上商店,带有指向产品的特定链接,例如() 我正在使用以下代码 var get_product_availability_classname = $("[class$='_availability']").attr('class'); 它选择(创建一个值为的变量)类以“\u availability”结尾的元素 每个产品页面在\u可用性之前都有一段不同的文本,如GOOGLENEXUS5\u可用性,SAMSUNG4KTV\u可用性,任何可用性 我现在要做的是从本质上删除我用来获取整
var get_product_availability_classname = $("[class$='_availability']").attr('class');
它选择(创建一个值为的变量)类以“\u availability”结尾的元素
每个产品页面在\u可用性
之前都有一段不同的文本,如GOOGLENEXUS5\u可用性
,SAMSUNG4KTV\u可用性
,任何可用性
我现在要做的是从本质上删除我用来获取整个类名的标准(即类$=''u可用性“
);使用上面的示例,它将从SAMSUNG4KTV\u可用性
调整为SAMSUNG4KTV
可能的解决方案
我还不知道如何使用,但我们可以使用JavaScript的substring()或substr()。使用回调方法,并使用regex方法更新类名
虽然可以使用,因为有可能有多个类,但在这种情况下,类可以在开始时使用,也可以在两个类之间使用
var get_product_availability_classname = $("[class*='_availability '],[class$='_availability']");
get_product_availability_classname.attr('class',function(i,v){
return v.replace(/_availability\b/g,'');
});
var get\u product\u availability\u classname=$(“[class*=”availability'],[class$=”availability']);
获取产品可用性类名称attr('class',函数(i,v){
返回v.replace(/\u可用性\b/,“”);
});
log(document.body.innerHTML)代码>
使用带有回调的方法,并使用带有regex的方法更新类名
虽然可以使用,因为有可能有多个类,但在这种情况下,类可以在开始时使用,也可以在两个类之间使用
var get_product_availability_classname = $("[class*='_availability '],[class$='_availability']");
get_product_availability_classname.attr('class',function(i,v){
return v.replace(/_availability\b/g,'');
});
var get\u product\u availability\u classname=$(“[class*=”availability'],[class$=”availability']);
获取产品可用性类名称attr('class',函数(i,v){
返回v.replace(/\u可用性\b/,“”);
});
log(document.body.innerHTML)代码>
如果类名中只有一个。
var get_product_availability_classname = $("[class$='_availability']").attr('class')
.split(' ') // split the class to individual classes
.filter(function(cls) { // filter ones with _availability
return cls.split('_').pop() == 'availability');
})[0]; // use first match
var product = get_product_availability_classname.split('_')[0]
.split(“”“)
创建一个数组[“产品”、“可用性”]
,[0]
选择此数组的第一项
或者你也可以
var product = get_product_availability_classname.split('_availability')[0]
除了在字符串\u availability
上拆分外,这也会做同样的事情,如果类名中只有一个\u
,那么前缀中有多少\u
并不重要
var get_product_availability_classname = $("[class$='_availability']").attr('class')
.split(' ') // split the class to individual classes
.filter(function(cls) { // filter ones with _availability
return cls.split('_').pop() == 'availability');
})[0]; // use first match
var product = get_product_availability_classname.split('_')[0]
.split(“”“)
创建一个数组[“产品”、“可用性”]
,[0]
选择此数组的第一项
或者你也可以
var product = get_product_availability_classname.split('_availability')[0]
这做了同样的事情,除了在字符串\u availability
上拆分,而且前缀中有多少\u
并不重要如果字符串始终是x\u y格式,其中x和y不包含下划线,则可以使用split函数在下划线上拆分
var str = "SAMSUNG4KTV_availability";
var result = str.split("_")[0];
console.log(result);
split函数返回一个字符串数组,其中每个下划线之间包含子字符串,您可以使用[0]选择数组中的第一个元素。如果字符串的格式始终为x_y,其中x和y不包含下划线,则可以使用split函数在下划线上拆分
var str = "SAMSUNG4KTV_availability";
var result = str.split("_")[0];
console.log(result);
split函数返回一个字符串数组,每个下划线之间包含子字符串,您可以使用[0]选择数组中的第一个元素。在这种情况下,最好使用正则表达式。下面将在classes字符串中查找_可用性,如果找到它,它将捕获之前的内容
var get_product_availability_classname = $("[class$='_availability']").attr('class');
var matches = /([^\s]*)_availability\b/g.exec(get_product_availability_classname)
if(matches.length > 1){
var your_id = matches[1];
}
在这种情况下,最好使用正则表达式。下面将在classes字符串中查找_可用性,如果找到它,它将捕获之前的内容
var get_product_availability_classname = $("[class$='_availability']").attr('class');
var matches = /([^\s]*)_availability\b/g.exec(get_product_availability_classname)
if(matches.length > 1){
var your_id = matches[1];
}
可以添加示例html标记吗?可以添加示例html标记吗?此解决方案错误。它只在元素只有一个类的情况下工作。如果在可用性类之前有一个类,它将失败。通过更新到get\u product\u availability\u classname
修复此解决方案错误。它只在元素只有一个类的情况下工作。如果在可用性类之前有一个类,它将失败。通过更新到get\u product\u availability\u classname
修复了我遇到的新问题。如果可以,.@alej27使用窗口[您的\u id+'\u预期的\u可用性\u日期]
获取变量值我遇到了一个新问题。如果可以,.@alej27使用窗口[您的\u id+'\u预期的\u可用性\u日期]
获取变量值