【问题标题】:how to change the value in the html tag using jquery如何使用jquery更改html标签中的值
【发布时间】:2011-08-29 11:24:40
【问题描述】:

我想根据下拉列表中的值更改小程序标签的参数值。 我是 jquery 的新手。有人可以告诉我如何使用 jquery 来做到这一点。

我的小程序代码:

<applet id="decisiontree" code="com.vaannila.utility.dynamicTreeApplet.class" archive="./appletjars/dynamictree.jar, ./appletjars/prefuse.jar" width ="1000" height="500" >
 <param name="dieasenmae" value="Malaria"/>
 </applet>

我的下拉代码:

<html:select name="AuthoringForm" property="disease_name" size="1" onchange="javascript:showSelected(this.value)">
<option>Malaria</option>
<option>High Fever</option>
<option>Cholera</option>
</html:select></p>

javascript:

function showSelected(value){
alert("the value given from dropdown is "+value);   
$("#decisiontree param[name='dieasenmae']").val(value); 
}

【问题讨论】:

  • 我不确定 Java 插件是否会接受这些更改。这意味着监控 DOM 树并在检测到更改并且看起来不明智时中止当前小程序的执行。

标签: javascript jquery


【解决方案1】:

只需使用:

var myNewValue = 'my new value';

$("#decisiontree param[name='dieasenmae']").val( myNewValue );

直播example on JSBin

选择器解释:

$("#decisiontree param[name='dieasenmae']")
        ^          ^    ^        ^
        1          2    3        4
  • 1 -> 在 ID decisiontree
  • 2 -> 查找param 类型的所有元素
  • 3 -> 具有属性name
  • 4 -> 并且该属性值需要为dieasenmae

既然您知道如何更改这些值,但这并不意味着它会起作用!因为您需要了解并查看 &lt;applet&gt; 将如何工作,通常它会在启动时加载所有值,并且无论您在 DOM 中执行什么操作,Applet 都可以忽略它......应该有一个 @ 987654330@某处,为此,最简单的方法是跟进这个问题:

Is there a way to reload/refresh a java applet from within the applet itself?

【讨论】:

  • 我无法看到这些更改以这种方式进行的更改在内存中,或者以这种方式进行的更改将反映在我的 jsp 中
  • 我已经向您解释过,您根本看不到任何变化,请阅读。
  • 只是重申我们使用 jquery 所做的任何更改都是在内存中完成的,并且不会保留在硬盘中。有没有办法使用 jquery 将更改保留在硬盘中。
  • DOM 操作一直在内存中,每次刷新页面都会加载之前写入的状态。但是,您可以做的是使用 动态语言(php、.net、jsp、ror 等)在第一次加载之前构造 HTML, 如果您只想使用 javascript 您可以在 cookie 中托管下拉值或使用本地存储(在 IE 中不可用),然后先更改该值并重新加载小程序。您永远不能仅使用客户端状态更改源。如果可能的话,想象一下安全问题;)
  • 你的意思是我有什么办法可以使用jsp从改变的DOM生成html。如果是的话,你能给我一些指示吗?非常感谢您的帮助。
【解决方案2】:
$('param').attr('value','your-value');

$('param').val('your-value');

确保在 dom 准备好或使用 document.ready 时启动它

【讨论】:

  • 如果它有多个参数,那将永远无法工作,您将更改所有参数!
  • 他只提到了一个参数。而且永远不工作!!!至少 'ALL' 包括这个。
  • 如果你想成为一名优秀的开发者,你永远不应该那样做!
  • 我同意你的答案更好,但你不能说我的答案永远不会工作。
  • 我提到如果代码中有多个&lt;param&gt;永远不会工作,我很清楚:)
【解决方案3】:
    $(document).ready(function()
    {
       $("#decisiontree param").val("newValue");
       // or
      $("#decisiontree param").attr("value","newValue");
});

【讨论】:

  • 如果有多个param,那将永远无法工作,您将全部更改!
  • 你在最后一行缺少}
  • @balexandre 您应该知道,如果编辑的非空格字符少于 6 个,则不允许编辑。而且只有1个可以公平编辑。如果他编辑,他可以根据需要添加更多
  • @Useman 你可以轻松地编造更多的字符说 我刚刚更新了代码... 1 char 从来没有阻止过任何人 ;)跨度>
猜你喜欢
  • 1970-01-01
  • 2012-02-11
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
相关资源
最近更新 更多