PDA

View Full Version : متنی که توی یه div هست رو چطوری بدست بیارم؟



ali zi zeperto
سه شنبه 01 شهریور 1390, 17:02 عصر
من یه div دارم که یه متن کوتان چند کلمه ای توشه و می خوام وقتی کاربر روی اون div کلیک کرد متن اون رو توی یه input text نشون بدم.میشه راهنمایی کنید؟

HamidTatalo
سه شنبه 01 شهریور 1390, 17:20 عصر
با جاوا اسکریپت می تونی به راحتی با استفاده از مقدار id اون div محتوای توش رو بدست بیاری
مثلا اگه یه div بشکل زیر داشته باشم

<div id="hamid">this is a test</div>میتونم به راحتی با استفاده از کد جاوا اسکریپت زیر به محتوای اون دسترسی داشته باشم
var a = document.getElementById("hamid").textContent;
alert(a);
اگه توجه کرده باشی اسم div برابر hamid هستش و اون رو داخل یه متغیر به اسم a ریختم و بعد هم با استفاده از alert نمایش دادم که می تونی بجای alert دستورای مورد نظر خودت رو بنویسی و باهاش کار کنی


کد کاملش هم میتونه به این شکل باشه

<html>
<head>
</head>
<body>
<div id="hamid"> this is a test </div>
</body>
<script type="text/javascript">

var a = document.getElementById("hamid").textContent;
alert(a);

</script>
</html>

HamidTatalo
سه شنبه 01 شهریور 1390, 17:29 عصر
اینم کد کامل اون مثالی که خودت خواسته بودی
مثال بالا رو به خواطر این زدم که کامل متوجه بشی که چه خبره و چیکار می کنیم


<html>
<head>
</head>
<body>
<div id="hamid" onclick="getText();"> this is a test </div>

<input type="text" id="myText" />
</body>

<script type="text/javascript">

function getText(){
var a = document.getElementById("hamid").textContent;
document.getElementById("myText").value = a;
}

</script>
</html>

ali zi zeperto
سه شنبه 01 شهریور 1390, 18:09 عصر
اینم کد کامل اون مثالی که خودت خواسته بودی
مثال بالا رو به خواطر این زدم که کامل متوجه بشی که چه خبره و چیکار می کنیم


<html>
<head>
</head>
<body>
<div id="hamid" onclick="getText();"> this is a test </div>

<input type="text" id="myText" />
</body>

<script type="text/javascript">

function getText(){
var a = document.getElementById("hamid").textContent;
document.getElementById("myText").value = a;
}

</script>
</html>
اول که خیلی ممنون بابت جواب.
یه مساله هست که این div ی که من باهاش کار دارم id نداره.تقریبا یکی از گزینه های یه لیسته که می خوام همونطور که گفتم وقتی کلیک شد روش مقدارش وارد یه input text بشه.این اون قسمت کده :

for(j = 0 ; j < temp.length ; j++){
var oDiv = document.createElement('div');
oDiv.onclick = function(){
document.getElementById('names').value = oDiv.textContent;
oM.parentNode.removeChild(oM);
flag = false;
}

ali zi zeperto
سه شنبه 01 شهریور 1390, 18:12 عصر
ول که خیلی ممنون بابت جواب.
یه مساله هست که این div ی که من باهاش کار دارم id نداره.تقریبا یکی از گزینه های یه لیسته که می خوام همونطور که گفتم وقتی کلیک شد روش مقدارش وارد یه input text بشه.این اون قسمت کده :

for(j = 0 ; j < temp.length ; j++){
var oDiv = document.createElement('div');
var oText = document.createTextNode(temp[j]);
oDiv.appendChild(oText);
oDiv.onclick = function(){
document.getElementById('names').value = oDiv.textContent;
oM.parentNode.removeChild(oM);
flag = false;
}
}
الان که اینطوری شد هیچ مقداری توی تکست باکس نمیاد.

HamidTatalo
چهارشنبه 02 شهریور 1390, 12:13 عصر
یه مساله هست که این div ی که من باهاش کار دارم id نداره.

دوست من اول اینکه بهتره با id کار کنی دوما واسه این کار که بدون id یک تابع رو فراخوانی کنی می تونی از this استفاده کنی.
من برنامه ای که بالا نوشته بودم رو با this واست میزارم و فقط کافیه شما وقتی داری div رو ایجاد می کنی توی خاصیت onclick اون تابع مورد نظر رو اینجور که من گفتم فراخوانی کنی . البته روش بهینه اینه که توی جاوا اسکریپت وقتی می خوای واسه onclick یه شئ تابعی رو فراخوانی کنی از addEventListener استفاده کنید . البته با روشی که خودت کار کردی هم میشه


<html>
<head>
</head>
<body>
<div onclick="getText(this);"> this is a test </div>

<input type="text" id="myText" />
</body>
<script type="text/javascript">

function getText(e){
var a = e.textContent;
document.getElementById("myText").value = a;
}

</script>
</html>

ali zi zeperto
چهارشنبه 02 شهریور 1390, 19:15 عصر
این خط رو اتفاقی به این تغییر دادم و کار کرد.
document.getElementById('names').value = this.textContent;
HamidTatalo بابت راهنمایی خیلی خیلی ممنون.:لبخندساده: