Javascript 获取文本并放入属性值
我想从“p”标记之间获取文本,并将其放入标题值中 之前: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
<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)