2016-11-10 105 views
0

如何更改或設置jQuery變量對象中的輸入值。 例如:在jQuery變量中設置輸入值

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script> 
htmlString = '<div><input name="hello" value="AAAAAAAA" /> </div>'; 
$htmlString = $(htmlString); 
$htmlString.find('[name="hello"]').val('world') 
console.log($htmlString.find('[name="hello"]').val()); 
console.log($htmlString.prop('outerHTML')); 
</script> 

的值[名稱=「你好」]示出了爲「世界」中的第一個的console.log,但在第二它表明,它仍然爲「AAAAAAAA」。 我需要它保持'世界'。

回答

1

使用jQuery的.attr()設置新的屬性值,在純js中調用.setAttribute(),並且它們都在DOM結構中進行更改。

爲什麼第一個控制檯還顯示「世界」?

例如,如果你喜歡設置

inputID.value = "world"; 
//value changed but if you try to view HTML source you see no changes 
inputID.setAttribute("value","world"); 
//here your source code changed 

輸入的值同樣在jQuery的

inputID.val("world"); 
//value changed but if you try to view source HTML you see no changes 
inputID.attr("value","world"); 
//here your source code changed 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<script> 
 
htmlString = '<div><input name="hello" value="AAAAAAAA" /> </div>'; 
 
$htmlString = $(htmlString); 
 
$htmlString.find('[name="hello"]').attr("value",'world'); 
 
console.log($htmlString.find('[name="hello"]').val()); 
 
console.log($htmlString.prop('outerHTML')); 
 
</script>

+0

雖然這些代碼不工作,其他的應該工作以及,對不對?我的意思是顯然正在設置,否則第一個控制檯日誌不會顯示「世界」。 – Robbie

+0

其他是什麼?第一個控制檯顯示「world」,因爲.attr()更新了屬性值。 –

+0

對不起,我的意思是我的OG代碼。 OG第一個控制檯也顯示世界。 – Robbie