jquery新手。我已经在javascript中运行了这个但是我切换到jquery所以我可以使用.each
。是否有一些特殊规则阻止我在jQuerys .replace
中使用JavaScripts .each
?
var jse_sanitized_title = "";
var jse_article_title = "";
var jse_article_titles = $('.jse_article_title');
$.each(jse_article_titles, function(i) {
jse_article_title = jse_article_titles[i].innerHTML;
//error for this says jse_article_titles[i].replace is not a function
jse_sanitized_title = jse_article_titles[i].replace(/ /g,"_");
})
编辑:替换的目的是用下划线替换空格。
答案 0 :(得分:3)
$.each(jse_article_titles, function() {
jse_article_title = this.innerHTML;
jse_sanitized_title = jse_article_title.replace(/ /g,"_");
});
更新后,您似乎想要执行以下操作:
$('.jse_article_title').each(function(){
this.innerHTML = this.innerHTML.replace(/ /g,"_");
});
jQuery有另一种方法:
$('.jse_article_title').html(function(index, old){
return old.innerHTML.replace(/ /g,"_");
});
答案 1 :(得分:2)
大概你的意思是:
$.each(jse_article_titles, function(i) {
jse_article_title = jse_article_titles[i].innerHTML;
//error for this says jse_article_titles[i].replace is not a function
jse_sanitized_title = jse_article_title .replace(/ /g,"_");
jse_article_titles[i].innerHTML = jse_sanitized_title;
})
如果您尚未声明jse_article_title
,请在此处输入var,例如:
var jse_article_title = jse_article_titles[i].innerHTML;
请注意,您必须在最后重新分配它。最后,没有像这样的特殊规则。 jQuery只是一个库。
答案 2 :(得分:1)
编辑:替换的目的是用下划线替换空格。
更新为使用.text()函数设置将所有spaces
替换为_
$('.jse_article_title').text(function () {
return this.innerHTML.replace(/ /g, '_');
});
可能你需要
jse_sanitized_title = jse_article_title.replace(/ /g,"_");
//using the jse_article_title
或
jse_sanitized_title = jse_article_titles[i].innerHTML.replace(/ /g,"_");
或使用jQuery,
jse_sanitized_title = $(this).text().replace(/ /g, "_");
答案 3 :(得分:0)
试试这个:
$.each(jse_article_titles, function() {
jse_article_title = $(this).html();
jse_sanitized_title = jse_article_title.replace(/ /g,"_");
})
答案 4 :(得分:0)
要按照您尝试的方式(使用innerHTML)进行操作,您需要使用get()引用该节点...您需要执行此操作:
jse_article_titles.get(i).innerHTML
但是,你应该能够缩短一点。
$('.jse_article_title').each( function() {
$(this).html( $(this).html().replace(/ /g,"_") );
});
// or
$('.jse_article_title').each( function() {
this.innerHTML = this.innerHTML.replace(/ /g,"_");
});
// whichever floats your boat
[编辑]:抱歉,我错了需要.get()。只要数字不是负数,jse_articles_titles [i]就完全有效,这是不可能的。