Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取文本并放入属性值_Javascript - Fatal编程技术网

Javascript 获取文本并放入属性值

Javascript 获取文本并放入属性值,javascript,Javascript,我想从“p”标记之间获取文本,并将其放入标题值中 之前: <option title="" value="Put Text">Put Text</option> Put文本 之后: <option title="$1,179.83" value="Put Text">Put Text</option> Put文本 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "ht

我想从“p”标记之间获取文本,并将其放入标题值中

之前:

<option title="" value="Put Text">Put Text</option>
Put文本
之后:

<option title="$1,179.83" value="Put Text">Put Text</option>
Put文本

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Get text and put in attribute value</title>
</head>

<body>


<div class="Text">
 <p>$1,179.83</p>
</div>


<form action="">

  <fieldset>

    <select class="putText" name="put-Text">
      <option title="" value="Put Text">Put Text</option>
    </select>

  </fieldset>

</form> 


</body>
</html>
有人知道可以实现这一点的javascript吗


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Get text and put in attribute value</title>
</head>

<body>


<div class="Text">
 <p>$1,179.83</p>
</div>


<form action="">

  <fieldset>

    <select class="putText" name="put-Text">
      <option title="" value="Put Text">Put Text</option>
    </select>

  </fieldset>

</form> 


</body>
</html>

获取文本并放入属性值
1179.83美元

放置文本


*********************************更新2011-09-13*****************************

代码正在运行。该代码也适用于ie6-8:

向选项添加ID

<option id="an_option" title="" value="Put Text">Put Text</option>
1179.83美元节省在

var vall = document.getElementsByClass("Text")[0].getElementsByName("p")[0].textValue;
通过设置标题

document.getElementById("an_option").title = vall;
// or
an_option.title = vall;
但请注意,按类寻址是模糊的,很容易出错

如果您需要正确地处理ID(读取ID和CLASS属性之间的差异),那么最好使用ID。

是的。。使用jQuery非常简单:

$('.putText').attr('title', $('.Text p').text());

应该可以在IE4+和NS7的所有浏览器中使用+

对于较新的浏览器,是内置的


旧浏览器的额外代码

if (!document.getElementsByClassName)
  document.getElementsByClassName=function (oElm, strTagName, strClassName){
/*
Written by Jonathan Snook, http://www.snook.ca/jonathan
Add-ons by Robert Nyman, http://www.robertnyman.com
*/        
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for(var i=0; i<arrElements.length; i++){
    oElement = arrElements[i];
    if(oRegExp.test(oElement.className)){
        arrReturnElements.push(oElement);
    }
}
return (arrReturnElements)
if(!document.getElementsByClassName)
document.getElementsByClassName=函数(oElm、strTagName、strClassName){
/*
作者:乔纳森·斯努克,http://www.snook.ca/jonathan
罗伯特·尼曼的附加组件,http://www.robertnyman.com
*/        
var arrElements=(strTagName=“*”&&oElm.all)?oElm.all:oElm.getElementsByTagName(strTagName);
var arrrurnelements=新数组();
strClassName=strClassName.replace(/\-/g,“\\-”);
var oRegExp=new RegExp(“(^ | \\s)”+strcassname+”(\\s |$)”;
变异元素;

对于(var i=0;i您的意思是这样的吗?Put Text window.onload=function(){var vall=document.getElementsByClass(“Text”)[0]。getElementsByName(“p”)[0]。textValue;document.getElementById(“an_选项”)。title=vall;};似乎不起作用,但我可能做错了什么。请从您的评论中创建一个pastebin或JSFIDLE,然后发布指向它的链接。感谢您的回复。最好不要使用jQuery,因为它会干扰我的其他脚本。效果很好:)感谢您的提示和彻底的回答@mplungjan刚刚在ie6、ie7和ie8中测试了它。我在“var arrElements…”处收到错误,当我删除旧浏览器的额外代码时,在“var pTag…”处收到错误。错误说明:“对象不支持此属性或方法”。在Firefox中,代码运行良好,如何解决ie6、ie7和ie8的问题?我找到了一个解决方案,用getElementById替换getElementsByClassName,用id=“PuttexOption”替换title=“”。现在开始工作:
if (!document.getElementsByClassName)
  document.getElementsByClassName=function (oElm, strTagName, strClassName){
/*
Written by Jonathan Snook, http://www.snook.ca/jonathan
Add-ons by Robert Nyman, http://www.robertnyman.com
*/        
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for(var i=0; i<arrElements.length; i++){
    oElement = arrElements[i];
    if(oRegExp.test(oElement.className)){
        arrReturnElements.push(oElement);
    }
}
return (arrReturnElements)