0

jqueryは初めてです。私はすでにこれをjavascriptで実行していますが、使用できるようにjqueryに切り替えています.each.replacejQuery内でJavaScriptを使用できないようにする特別なルールはあり.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,"_");

})

編集:置換の目的は、スペースをアンダースコアに置き換えることです。

4

5 に答える 5

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,"_");
});
于 2012-05-14T18:05:43.960 に答える
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 jse_article_title = jse_article_titles[i].innerHTML;

最後に再割り当てする必要があることに注意してください。最後に、このような特別なルールはありません。jQueryは単なるライブラリです。

于 2012-05-14T18:05:01.530 に答える
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, "_");
于 2012-05-14T18:05:12.527 に答える
0

これを試して:

$.each(jse_article_titles, function() {

    jse_article_title = $(this).html();

    jse_sanitized_title = jse_article_title.replace(/ /g,"_");

})
于 2012-05-14T18:06:40.457 に答える
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]は、数値が負でない限り完全に有効ですが、これはほとんどありません。

于 2012-05-14T18:14:39.150 に答える