2012-04-02 7 views
1

ich dieses Beispiel auf dem Netz gesehen haben:Was bedeutet dieses Attribut unten?

$('#questionTextArea').each(function() { 

    var $this = $(this); 
    var $questionText = $("<textarea class='textAreaQuestion'></textarea>") 
        .attr('name',$this.attr('name')) 
        .attr('value',$this.val()); 

    $question.append($questionText); 

    }); 

Wo es heißt '.attr ('name', $ this.attr ('name'))', was bedeutet das? Gibt es das gleiche 'name' Attribut wie das 'id' Attribut #questionTextArea oder den gleichen 'Namen' wie das 'class' Attribut 'textAreaQuestion'?

Dank

+0

Wie Sie $ this, verwenden würde ich sagen questionTextArea –

+0

so die ID und und das Attribut name beide gleich ‚questionTextArea‘? – user1304948

Antwort

6

Dies wird auf jeden neu angelegten <textarea> zum name Attribute #questionTextArea das name Attribut zuweisen.

// Points $this to the current node the .each() is iterating on (#questionTextArea) 
var $this = $(this); 

// The name attribute of the current node .each() is iterating on 
$this.attr('name'); 

Beachten Sie, dass, da es eine ist id abgefragt, da nur einer von diesen sein sollte und damit die .each() Schleife ist eine Art überflüssig. Das gleiche könnte mit etwas erreicht werden, wie:

var $questionText = $("<textarea class='textAreaQuestion'></textarea>") 
    .attr('name', $('#questionTextArea').attr('name')) 
    .attr('value', $('#questionTextArea').val()); 
+0

Also kann ich fragen, was dieses Namensattribut tatsächlich gleich ist? mit anderen Worten 'name = ...' – user1304948

+0

@ user1304948 Wir wissen nicht aus dem geposteten Code, was der tatsächliche Wert von 'name' ist. Was auch immer der 'name =' etwas '' auf dem Element mit 'id =' questionTextArea '' ist (angenommen, das ist ein '