Javascript PHP&;CSS-如果填充了其他字段,则隐藏元素

Javascript PHP&;CSS-如果填充了其他字段,则隐藏元素,javascript,html,css,wordpress,Javascript,Html,Css,Wordpress,我正在Wordpress中编辑一个经销商定位器,我需要修改几个字段。 如果另一个字段已填充,我需要隐藏该字段 场景: 如果用户填写地址字段并将地址2字段留空,则元素地址将显示。 我解决了那个部分,但现在我正在努力解决下一部分。如果用户填写Address2字段,则需要显示Address2并隐藏地址 我现在使用的代码是: function custom_listing_template() { global $wpsl, $wpsl_settings; $listing_template = '

我正在Wordpress中编辑一个经销商定位器,我需要修改几个字段。 如果另一个字段已填充,我需要隐藏该字段

场景:

如果用户填写地址字段并将地址2字段留空,则元素地址将显示。 我解决了那个部分,但现在我正在努力解决下一部分。如果用户填写Address2字段,则需要显示Address2并隐藏地址

我现在使用的代码是:

function custom_listing_template() {

global $wpsl, $wpsl_settings;

$listing_template = '<li class="my_change_list" data-store-id="<%= id %>">' . "\r\n";

$listing_template .= "\t\t" . '<div class="locator_wrap_left">' . "\r\n";
$listing_template .= "\t\t" . '<div class="locator_title">' . "\r\n";
$listing_template .= "\t\t\t\t" . wpsl_store_header_template( 'listing' ) . "\r\n";
$listing_template .= "\t\t" . '</div>' . "\r\n";
$listing_template .= "\t\t" . '<div class="locator_left">' . "\r\n";
$listing_template .= "\t\t\t" . '<p><%= thumb %>' . "\r\n";

$listing_template .= "\t\t\t\t" . '<span class="wpsl-street street1"><%= address %></span>' . "\r\n";
$listing_template .= "\t\t\t\t" . '<% if (address2) {  %>' . "\r\n";
$listing_template .= "\t\t\t\t" . ' <span class="wpsl-street street2"><%= address2 %></span>' . "\r\n";
$listing_template .= "\t\t\t\t" . '<% } %>' . "\r\n";
$listing_template .= "\t\t\t\t" . '<span>' . wpsl_address_format_placeholders() . '</span>' . "\r\n";
$listing_template .= "\t\t\t\t" . '<span class="wpsl-country"><%= country %></span>' . "\r\n";
$listing_template .= "\t\t\t" . '</p>' . "\r\n";
$listing_template .= "\t\t" . '</div>' . "\r\n";

编辑:我现在正试图避免使用javascript,因为它是一个PHP文件

street1
是一个
class
元素,而不是
id

您需要使用
document.getElementsByClassName('street1')。style.display='none'
而不是
document.getElementById('street1')。style.display='none'

您还必须迭代所有元素才能隐藏它们:

var street1=document.getElementsByClassName('street1');
对于(变量x=0;x
elem 1
要素2
要素3
要素4使用

而不是

document.getElementById('street1').style.display = 'none';

因为
street1
是一个类而不是ID,并且
getElementsByClassName
返回多个元素。

这里是两个控件的示例,键入一个控件,ohter就会显示出来

您要做的是使用显示的
占位符
选择器。如果不想显示占位符,可以将其设置为空白

代码如下:

Html:


street1
是一个类,而不是ID。op发布javascript问题,然后坚持使用php解决方案,这是不可能的。另外,这个问题没有被标记为php。谢谢你的回答,但我没有明确表示我在避免使用Javascript,因为这是一个php文件,基本结构是php。如果我使用Javascript,你的答案会有效。谢谢你抽出时间!首先,您的代码示例是javascript,问题中甚至没有对php进行标记。其次,php呈现文本并将其发送到浏览器。php实际上没有能力在dom中隐藏发送到浏览器的内容。
var eles = document.getElementsByClassName('street1');
for(var i=eles.length; ele--;) ele[i].style.display = 'none';
document.getElementById('street1').style.display = 'none';
  <input type="text" id="aa" placeholder=" ">
    <input type="text" id="bb">
#aa:placeholder-shown ~ #bb{
display:none;
}