2017-07-14 3 views
1

Ich habe eine Eingabeklasse und ich möchte es ändern, um Formularattribut auszuwählen.jQuery Werte basierend auf Attributen ändern

Bis jetzt habe ich etwas ähnliches, das an meinem h2.title arbeitet, das das Wort von Apple zu Orange ändert.

Beispiel

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript"> 
if(){ 
    $(document).ready(function(){ 
     $(document).live({ 
      mouseover: function(e) { 
      $('h2.title').each(function() { 
       var text = $(this).text(); 
       text = text.replace('Apple', 'Orange'); 
       $(this).text(text);   
      }); 
      } 
     }); 
    }); 
} 
</script> 

Und ich mag diese zu

<input class = "form-input ng-pristine ng-untouched ng-valid ng-empty ng valid-maxlength" id="Banana" maxlength = "2000" name="Banana" type=text" 

Gibt es eine Möglichkeit, um dies zu arbeiten, um zu wählen Attribut Form umgewandelt werden? mit 2 Optionen auswählen

+0

Format Code uns –

Antwort

1

Ja, können Sie dies tun:

text = text.replace('Apple', $(this).attr("name")); 

Hier ist eine Demo:

$(document).ready(function() { 
 
    $(document).on("mouseover", function(e) { 
 
    $('h2.title').each(function() { 
 
     var text = $(this).text(); 
 
     text = text.replace('Apple', $(this).attr("name")); 
 
     $(this).text(text); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h2 class="title" name="Banana">Apple</h2> 
 
<h2 class="title" name="Orange">Apple</h2> 
 
<h2 class="title" name="Pineapple">Apple</h2> 
 
<h2 class="title" name="Grape">Apple</h2>

+0

Sie besser lesen zu lassen, danken sehr viel Racil –

+0

Der Kürze halber würde ich eine weitere Verschiebung empfehlen: '$ ('h2.title'). text (function (index, currentText) {return currentText.r eplace ('Apple', this.name); }); 'die Verwendung von' each() 'und mehrere Aufrufe der Methode' text() ', ganz zu schweigen von der Verwendung' $ (this) .attr ('name') ', macht viel mehr Arbeit als nötig . –

+0

@DavidThomas Vereinbarte auf "Kürze", aber ich ließ den Code, wie es ist, weil es leichter für das OP sein könnte (d. H. Persönliche Codierung Stil). Was "weit mehr Arbeit" betrifft, sehe ich nicht, wie dein Vorschlag weniger Arbeit machen kann oder weniger Aufrufe von 'text()' hat. Sowohl meine Antwort als auch Ihr vorgeschlagener Code rufen 'text()' zweimal auf, einmal, um den Wert zu erhalten, und einen anderen, um ihn zu setzen (obwohl dies implizit in Ihrem Code enthalten ist). Und die name-Eigenschaft, wie Sie sie vorgeschlagen haben, kann nur in "input" -Elementen verwendet werden, nicht in "h2". –

Verwandte Themen